任务寄存器(TR)在保护模式任务切换机制中很重要。与LDTR一样,该寄存器存放的也是一个称为选择符的16位索引值。TR开始的选择符由软件装入,它开始第一个任务。这之后再执行任务切换的指令时就自动修改选择符。
图所示,TR中的选择符用来指示全局描述符表中描述符的位置。当选择符装入TR中的时候,相应的任务状态段(TSS)描述符自动从存储器中读出并装入任务描述符高速缓存中。该描述符定义了一个称为任务状态段(TSS)的存储块,它提供了段起始地址(Base)和段界限(Limit)。每个任务都有它自己的TSS。TSS包含启动任务所需的信息,诸如用户可访问的寄存器初值。
图 任务寄存器和任务切换机制
3. 调试和模型专用寄存器
Pentium处理器中提供了一组调试寄存器和一组模型专用寄存器,用于排除故障和用于执行跟踪、性能监测、测试及机器检查错误。
(1) 调试寄存器(Debug Register)
调试寄存器如图所示,这是一组32位的寄存器,是程序员可访问的,提供片上支持调试。80386/80486定义了6个调试寄存器,其中DR0~DR3指定了4个线性断点地址;DR7为调试控制寄存器,用于设置断点;DR6为调试状态寄存器,用于显示断点的当前状态。
图 调试寄存器
Pentium处理器对调试寄存器DR4和DR5给予调试寄存器DR6和DR7的别名。当控制寄存器
CR4中的DE位设置为0时,即禁止调试扩充,Pentium通过允许引用DR6和DR7的别名保持与现有软件兼容;当DE位设置为1时,即允许调试扩充,引用DR4或DR5将产生未定义的操作码异常。
(2) 模型专用寄存器
Pentium处理器取消了80386/80486中的测试寄存器TR,其功能由一组“模型专用寄存器”MSR(Model Special Register)来实现,这一组MSR用于执行跟踪、性能监测、测试和机器检查错误。Pentium处理器采用两条指令RDMSR(读MSR)和WRMSR(写MSR)来访问这些寄存器,ECX中的值(8位值)确定将访问该组寄存器中哪一个MSR。表给出了所有模型专用寄存器MSR与需要装入ECX值的关系。
表 模型专用寄存器与ECX的关系 ECX 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H 11H 12H 13H 14H
2.3.3 Pentium的四种工作方式
Pentium在80486三种工作方式的基础上新增了一种系统管理方式,使Pentium微处理
寄存器名 机器检查地址 机器检查类型 测试寄存器1 保留 测试寄存器2 测试寄存器3 测试寄存器4 测试寄存器5 测试寄存器6 测试寄存器7 测试寄存器8 测试寄存器9 测试寄存器10 测试寄存器11 测试寄存器12 保留 时间戳计数器 控制和事件选择 计数器0 计数器1 保留 说明 引起异常周期的存储器地址 引起异常周期的存储周期类型 奇偶校验逆寄存器 指令超高速缓存结束位 超高速缓存测试数据 超高速缓存测试标志 超高速缓存测试控制 TLB测试线性地址 TLB测试控制和物理地址A31~A12 TLB测试物理地址A35~A32 BTB测试标志 BTB测试目标 BTB测试控制 执行跟踪和转移预测 性能监测 性能监测 性能监测 性能监测 器具有了四种工作方式,即: 实地址方式、保护虚拟地址方式、虚拟8086方式和系统管理方式。
1. 实地址方式
实地址方式是为了与8086兼容而设置的一种工作方式。在这种工作方式下,Pentium的工作原理与8086的工作原理相同,所以实地址方式又称为8086方式。
在实地址方式下,Pentium的地址线中只有低20条地址线起作用,即能寻址的物理存储器空间为1MB。其中两个物理存储空间00000000H~000003FFH和FFFFFFF0H~FFFFFFFFH是需要保留的。前者为中断向量区,后者为CPU加电或复位时程序的启动地址。
系统复位时CR0的PE位自动清0,进入实地址方式,此时,CS寄存器所对应的描述符寄存器中的基地址为FFFF0000H,段边界为FFFFH,(EIP)=0000FFF0H,即:
程序的执行地址=基地址+(EIP)=FFFFFFF0H
程序就从此地址开始运行。当首次遇到段间转移或段间调用指令时,物理地址又自动置为000XXXXXH(X为任意值,由执行的指令而定),从而进入实地址方式下的物理地址空间。此时,Pentium处理器借助操作数长度前缀和地址长度前缀,可进行32位操作和32位寻址,但要注意32位偏移地址不能超出64KB的限制,否则必定发生异常。
因此,可以这样说,在实地址方式下,Pentium仅是一个高速的8086,它的许多优秀性能如多任务、多级保护等均不能实现。
2. 保护虚拟地址方式
保护虚拟地址方式是一种建立在虚拟存储器和保护机制基础上的工作方式,可最大限度地发挥CPU所具有的存储管理功能及硬件支持的保护机制,这就为多用户操作系统的设计提供了有力的支持。本节仅就存储空间及保护概念进行初步介绍,存储管理的具体实现将在存储器章节加以介绍。
保护方式下,Pentium微处理器有三种存储器地址空间,即物理地址空间、线性地址空间和虚拟地址空间。物理地址空间是CPU可直接寻址的,决定于CPU地址总线的位数,为232字节(4GB);线性地址空间是由分段机制产生的,也为4GB,不分页时即为物理地址空间。
虚拟地址空间是用户编程使用的空间,决定于分段分页管理机制,无论是分段还是分段又分页,一个任务最多能访问的逻辑段数为2×213个,即GDT和LDT中所能存放的段描述符数。只分段时,每个逻辑段的最大长度为1MB,即用户所拥有的虚拟地址空间为2×213×1MB=16GB;分段又分页时,逻辑段的最大长度为4GB,用户所拥有的虚拟地址空间为214×4GB=64TB。
3. 虚拟8086方式
虚拟8086方式是为在保护方式下能与8086/8088兼容而设置的,是一种既有保护功能又能执行8086代码的工作方式。CPU与保护虚拟地址方式下的工作原理相同,但程序中指定的逻辑地址按8086方式解释。
4. 系统管理方式(SMM)
Pentium处理器除了上述三种工作方式外,增加了一种系统管理方式(System Management
Mode,SMM)。SMM可使设计者实现高级管理功能,如对电源管理以及为操作系统和正在运行的程序提供安全性,而它最显著的应用就是电源管理。SMM可以使处理器和系统外围部件都休眠一定时间,然后在有一键按下或鼠标移动时能自动唤醒它们,并使之继续工作。利用SMM可实现软件关机。
图 Pentium四种工作方式的相互转换
SMM主要为系统管理而设置,与保护方式一样,是Pentium的一个主要特征。在硬件的控制下,可从任何一种方式进入SMM方式,事后再返回原来方式。四种方式间转换关系如图所示,其中SMI表示系统管理中断信号有效,RSM表示系统管理方式返回指令。