还剩17页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
Pentium微处理器的内部寄存器Pentium是Intel公司于1993年3月推出的第五代80X86系列微处理器,简称P5或80___,中文译名为“奔腾”与其前辈80X86微处理器相比,Pentium采用了全新的设计,它有64位数据线和32位地址线,但依然保持了与其前辈80X86的兼容性,在相同的工作方式上可以执行所有的80X86程序Pentium的内部结构如图
2.4所示它主要由执行单元、指令Cache、数据Cache、指令预取单元、指令译码单元、地址转换与管理单元、总线单元以及控制器等部件组成其中核心是执行单元又叫运算器,它的任务是高速完成各种算术和逻辑运算,其内部包括两个整数算术逻辑运算单元ALU和一个浮点运算器,分别用来执行整数和实数的各种运算为了提高效率,它们都集成了几十个数据寄存器用来临时存放一些中间结果这些功能部件除地址转换和管理单元与80___/80___保持兼容外,其他都进行了重新设计1超标量体系结构和指令流水线Pentium由“U”和“V”两条指令流水线构成超标量流水线结构,其中每条流水线都有自己的ALU、地址生成逻辑和Cache接口这种双流水线技术可以使两条指令在不同流水线中并行执行图
2.4Pentium微处理器的内部结构每条流水线又分为指令预取PF、指令译码一次译码D
1、地址生成二次译码D
2、指令执行EX和回写WB共5个步骤图
2.5给出了Pentium的指令流水线操作示意图
2.5Pentium指令流水线操作示意图当第一条指令完成指令预取,进入第二个操作步骤D1,执行指令译码操作时,流水线就可以开始预取第二条指令;当第一条指令进入第三个步骤D2,执行地址生成时,第二条指令进入第二个步骤D1,开始指令译码,流水线又开始预取第三条指令;当第一条指令进入第四个步骤EX,执行指令规定的操作时,第二条指令进入第三个步骤D2,执行地址生成,第三条指令进入第二个步骤D1,开始指令译码,流水线又开始预取第四条指令;当第一条指令进入第五个步骤WB,执行回写操作时,第二条指令进入第四个步骤EX,执行指令规定的操作,第三条指令进入第三个步骤D2,执行地址生成,第四条指令进入第二个步骤D1,开始指令译码,流水线又开始预取第五条指令这种流水线操作并没有减少每条指令的执行步骤,5个步骤哪一步都不能跳越但由于各指令的不同步骤之间并行执行,从而极大地提高了指令的执行速度从第一个时钟开始,经过5个时钟后,每个时钟都有一条指令执行完毕从流水线输出在这种理想情况下,Pentium的超标量体系结构每个时钟周期内可执行两条整数指令每条流水线执行一条指令2重新设计的浮点运算部件Pentium的浮点运算部件在80___的基础上作了重新设计,采用了超流水线技术,由8个__执行部件进行流水线作业,使每个时钟周期能完成一个浮点操作或两个浮点操作采用快速算法可使诸如ADD、MUL和LOAD等运算的速度最少提高3倍,在许多应用程序中利用指令调度和重叠流水线执行可使性能提高5倍以上同时,这些指令用电路进行固化,用硬件来实现,使执行速度得到更大提高3__的指令Cache和数据CachePentium片内有两个8KB的超高速缓存器,一个是指令Cache,一个是数据Cache转换后备缓冲器TLBTranslationLook-asideBuffer的作用是将线性地址转换为物理地址这两种Cache采用32×8线宽,是对Pentium的64位总线的有力支持指令和数据分别使用不同的Cache,使Pentium中数据和指令的存取减少了冲突,提高了性能Pentium的数据Cache有两种接口,分别与U和V两条流水线相连,以便能在相同时刻向两个__工作的流水线进行数据交换当向已被占满的数据Cache中写数据时,将移走当前使用频率最低的数据,同时将其写回内存,这种技术称为Cache回写技术由于CPU向Cache写数据和将Cache释放的数据写回内存是同时进行的,所以采用Cache回写技术将节省处理时间4分支指令预测Pentium提供了一个称为BTBBranchTargetBuffer的小Cache来动态地预测程序的分支操作当某条指令导致程序分支时,BTB记忆下该条指令和分支的目标地址,并用这些信息预测该条指令再次产生分支时的路径,预先从该处预取,保证流水线的指令预取步骤不会空置这一机构的设置,可以减少在循环操作时对循环条件的判断所占用的CPU的时间5采用64位外部数据总线Pentium芯片内部ALU和通用寄存器仍是32位,所以还是32位微处理器,但它同内存储器进行数据交换的外部数据总线为64位,使两者之间的数据传输速度可达528MB/s此外Pentium还支持多种类型的总线周期,在突发方式下,可以在一个总线周期内读入256B的数据
2.Pentium的外部引脚Pentium芯片有168个引脚,这些引脚__线也即PentiumCPU总线,分为三大类总线接口引脚、处理器控制引脚、调试与测试引脚1总线接口__Pentium的总线接口__如表
2.1所示这些引脚__包括用于管理访问外部存储器和I/O端口必须的地址、数据和总线周期控制__,以及Cache控制__表
2.1总线接口__类型符号功能方向地址__A31~A3APAPCHK地址总线用于指明某一8字节64位单元地址地址奇偶校验地址奇偶校验出错字节允许用于指明访问8字节中的哪些字节输出输出输出输出数据__D63~D0DP7~DP0数据总线D63~D
56、D7~D0分别是最高和最低有效字节数据奇偶校验引脚分别对应数据的8个字节数据奇偶校验允许数据奇偶校验状态指示低电平表示有奇偶校验错总线检查输入/输出输入/输出输出输出输入总线周期控制__SCYC地址状态它有效表明地址和总线定义__是有效的突发就绪表明当前周期已完成数据/控制周期指示用来区分数据和控制周期写/读周期指示用来区别读还是写周期存储器/IO周期指示用来区分存储器和IO周期分离周期表示未对齐操作锁定期间有2个以上的周期被锁定Cache输出__,指示当前Pentium周期可对数据进行缓存总线锁定它有效表明Pentium正在读—修改—写周期中运行,在读与写周期间不释放外部总线,即独占系统总线输出输出输出输出输出输出输出输出Cache控制__PWTPCD页面通写PWT=1表明写操作命中时既要写Cache,也要写内存页面Cache禁止PCD=1时禁止以页为单位的Cache操作Cache允许用来确定当前周期所传送的数据是否能用于高速缓存下一地址,用于形成流水线式总线周期回写/通写外部写缓冲器空输出输入输入输入输出输入D63~D0是Pentium的64位双向数据总线A31~A3和构成32位地址总线,以提供存储器和I/O端口的物理地址A31~A3用于确定一个8字节单元地址,则用于指明在当前的操作中要访问8字节中的哪些字节Pentium微处理器规定对应数据线D7~D0;对应数据线D15~D8;对应数据线D23~D16;对应数据线D31~D24;对应数据线D39~D32;对应数据线D47~D40;对应数据线D55~D48;对应数据线D63~D56Pentium微处理器的地址线没有设置A
2、A1和A0引脚,但可由这8个字节使能__产生,为保持与前辈80X86的兼容性,还应产生__数据/控制、写/读、存储器/IO是总线周期定义的基本__,这3个__的不同组合可以决定当前的总线周期所要完成的操作,如表
2.2所示这些操作的意义将在有关章节加以介绍表
2.2总线周期定义启动的总线周期000中断响应周期001停机/暂停010I/O读周期011I/O写周期100微代码读周期101Intel公司保留110存储器读周期111存储器写周期2处理器控制__处理器控制__如表
2.3所示包括时钟、处理器初始化、FRC、总线仲裁、Cache窥视、中断请求、执行跟踪、数字出错和系统管理等__表
2.3处理器控制__类型符号功能方向时钟CLK时钟输入__为CPU提供内部工作频率输入初始化RESETINIT复位高电平强制Pentium从已知的初始状态开始执行程序初始化INIT的作用类似于RESET__,不同之处是它在进行处理器初始化时,将保持片内Cache、写缓冲器和浮点寄存器的内容不变输入输入FRC功能冗余检查方式内部出错输出输出总线仲裁HOLDHLDABREG总线保持请求它有效时,表示请求Pentium交出总线控制权总线保持响应它有效时,指明Pentium已经交出总线控制权总线请求该引脚有效时,表示Pentium需要使用系统总线总线占用它有效时,强制Pentium在下一时钟浮空其总线输入输出输出输入Cache窥视AHOLDINV地址保持请求该__决定地址线A31~A4是否接受地址输入有效外部地址该__表示地址总线A31~A4上的地址__有效Cache清洗低电平有效时,强制Pentium清洗整个内部高速缓存未命中命中无效请求输入输入输入输出输出输入中断INTR__I可屏蔽中断请求高电平表示有外部中断请求不可屏蔽中断请求上升沿表示该中断请求有效输入输入执行跟踪IUIVIBTU流水线指令完成V流水线指令完成转移跟踪指令输出输出输出数字出错浮点出错用来报告Pentium中PC类型的浮点出错忽略数字出错输出输入系统管理系统管理中断该__有效,使Pentium进入到系统管理运行模式系统管理中断激活该__有效,表明Pentium正工作在系统管理模式输入输出其他A20M第20位地址屏蔽该__有效时,将屏蔽A20及以上地址,使Pentium仿真8086的1MB存储空间输入3调试与测试引脚调试与测试__如表
2.4所示包括探针方式、断点/性能监测和边界扫描等引脚__表
2.4调试与测试__类型符号功能方向探针方式R/SPRDY进入或退出探针方式探针方式就绪输入输出断点/性能监测PM0/BP0PM1/BP1BP3~BP2性能监测0/断点0性能监测1/断点1断点3~断点2输出输出输出边界扫描TCKTDITDOTMS测试时钟测试数据输入测试数据输出测试方式选择测试复位输入输入输出输入输入
2.
3.2内部寄存器Pentium的内部寄存器按功能分为四类基本寄存器、系统级寄存器、调试与模型专用寄存器、浮点寄存器它们是在80___内部寄存器的基础上扩充而来,并与其前辈80X86保持了兼容主要差别是Pentium用一组模型专用寄存器代替了80___的测试寄存器,并扩充了一个系统控制寄存器
1.基本寄存器基本寄存器包括通用寄存器、指令指针寄存器、标志寄存器和段寄存器,这些寄存器都是在8086/8088基础上扩展而来的,如图
2.6所示图
2.6基本寄存器1通用寄存器8个32位通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP是在8086/8088的8个16位寄存器基础上扩展位数而来的为了与8086/8088兼容,它们的低16位可以单独访问,并以同8086/8088中相同的名称命名AX、BX、CX、DX、SI、DI、BP、SP其中AX、BX、CX、DX还可进一步分成两个8位寄存器单独访问,且同样有自己__的名称AH、AL,BH、BL,CH、CL,DH、DL上述寄存器中,ESP是指示栈顶的指针,称为堆栈寄存器在32位寻址时,8个32位寄存器均可用作存储器访问的地址寄存器,但在16位寻址时,只能使用BX、BP、SP、SI、DI寄存器,其中BX和BP称为基址寄存器,SI和DI称为变址寄存器,ECX则常用于循环控制,又称为循环计数寄存器,EAX则称为累加器2指令指针寄存器EIPEIP用于保存下一条待预取指令相对于代码段基址由CS提供的偏移量它的低16位也可以单独访问,并称之为IP寄存器当80X86/Pentium工作在32位操作方式时,采用32位的EIP;工作在16位操作方式,采用16位的IP用户不可随意改变其值,只能通过转移类、调用及返回类指令改变其值3标志寄存器EFLAGS标志寄存器EFLAGS是32位的,它是在8086/8088/80286标志寄存器FLAGS的基础上扩充而来的,共定义了三类17种18位标志,即状态标志6种CF、PF、AF、__、SF和OF,用于报告算术/逻辑运算指令执行后的状态;控制标志1种DF,用于控制串操作指令的地址改变方向;系统标志10种11位TF、IF、IOPL、NT、RF、VM、AC、VIF、VIP和ID,用于控制I/O、屏蔽中断、调试、任务转换和控制保护方式与虚拟8086方式间的转换图
2.7给出了EFLAGS中各位的标志名以及各标志位与CPU的隶属关系,取值为0的位是Intel保留的,并未使用各标志位意义如下图
2.7标志寄存器
①进位标志CF位0CF=1表示运算结果的最高位产生了进位或借位这个标志主要用于多字节数的加减法运算移位和循环指令也用到它
②奇偶标志PF位2PF=1表示运算结果中有偶数个1该标志主要用于数据传输过程中检错
③辅助进位标志AF位4AF=1表示运算导致了低4位向第5位位4的进位或借位该标志主要用于BCD码运算
④零标志__位6__=1表示运算结果的所有位为0
⑤符号标志SF位7SF=1表示运算结果的最高位为1对于用补码表示的有符号数,SF=1表示结果为负数
⑥自陷标志TF位8TF=1表示CPU将进入单步执行方式,即每执行一条指令后都产生一个内部中断利用它可逐条指令地调试程序
⑦中断允许标志IF位9IF=1表示CPU允许外部可屏蔽中断,否则禁止外部可屏蔽中断注意,IF标志对内部中断和外部不可屏蔽中断__I不会产生影响
⑧方向标志DF位10DF=1表示在串操作过程中地址指针EDI和ESI的变化方向是递减,否则为递增
⑨溢出标志OF位11OF=1表示有符号数运算时,运算结果的数值超过了结果操作数的表示范围OF对无符号数是无意义的⑩I/O特权级标志IOPL位13和位12这两位表示0~3级4个I/O特权级,用于保护方式只有当任务的现行特权级高于IOPL时0级最高,3级最低,执行I/O指令才能保证不产生异常任务嵌套标志NT位14指明当前任务是否嵌套,即是否被别的任务调用该位的置位和复位通过向其他任务的控制转移来实现,NT的值由IRET指令检测,以确定执行任务间返回还是任务内返回,NT用于保护方式恢复标志RF位16该标志与调试寄存器的断点或单步操作一起使用该位为1,即使遇到断点或调试故障,也不产生异常中断在成功执行完每条指令时,该位自动清零,但在执行堆栈操作、任务切换、中断指令时有例外虚拟86模式标志VM位17在保护方式下,若该位置1,80___/80___/Pentium处理器将转入虚拟8086方式VM位只能以两种方式来设置在保护方式下,由最高特权级0级的代码段的IRET指令来设置;或者由任务转换来设置对准检查标志AC位18该位只对80___和Pentium有效AC=1,且CR0的AM位也为1,则进行字、双字或4字的对准检查若发现要访问的操作未按边界对齐时,会发生异常中断虚拟中断标志VIF位19该位只对Pentium有效是虚拟方式下中断允许标志位的拷贝Copy虚拟中断挂起标志VIP位20该位只对Pentium有效用于在虚拟方式下提供有关中断的信息,在多任务环境下,为操作系统提供虚拟中断标志和中断挂起信息标识标志ID位21该位只对Pentium有效用以指示Pentium微处理器对CPUID指令的支持状态CPUID指令为系统提供了有关Pentium处理器的信息,诸如型号及制造商4段寄存器6个段寄存器中,FS和GS是80___以上CPU才有的段寄存器用于决定程序使用的存储器区域块其中CS指明当前的代码段;SS指明当前的堆栈段;DS、ES、FS和GS指明当前的四个数据段每个段寄存器由一个16位的段选择器和64位对80286是48位的描述符高速缓存器组成段选择器是编程者可直接访问的,而描述符高速缓存器则是编程者不能访问的由于80X86/Pentium在不同工作方式下,段的概念有所不同,因而段寄存器的使用也不相同
(1)实地址方式和虚拟8086方式下的段寄存器在实地址方式和虚拟8086方式下,段的概念与8086的段定义相同,即每段的长度限定为64KB这时,段选择器就是段寄存器,它存放的是段基址的高16位在这两种方式下,处理器的物理地址实质上是这样产生的CPU将段寄存器的内容自动乘16并放在段描述符高速缓存器的__址中;将段限定固定为0FFFFH;其他属性也是固定的即物理地址=段选择器×16+偏移地址这种物理地址的形成与8086在本质上没有区别由于段的最大长度、段基址的确定方法和段的其他属性都是固定的,所以与8086一样,不必用段描述符来说明段的性质
(2)保护虚拟地址方式下的段寄存器保护虚拟地址方式是一种既支持虚拟存储管理和多任务,又具有保护功能的工作方式在该方式下,段的长度和段的属性都不固定,每个段的长度可以在1B到4GB之间变化80286只能在1B到64KB之间变化,段的基址也只有在操作系统将该段从外存调入内存时才能确定所以,为了描述每个段的基址、属性和边界长度,为每个段定义了一个64位80286为48位的描述符,称为段描述符或描述子段描述符的格式如图
2.8所示低48位是80286的描述符,包括16位段边界、24位段__址和8位属性80___以上的32位微处理器则在此基础上扩充了8位__址、4位边界和4位属性,即包括20位段边界、32位段__址和12位属性其中属性位定义如下图
2.8段描述符格式
①P为存在位,为1表示存在在实内存中,为0表示不存在
②DPL为描述符特权级,允许为0~3级
③S为段描述符类别,为1表示代码段或数据段描述符,为0表示系统描述符
④TYPE为段的类型
⑤A为已访问位,为1表示已访问过
⑥G为粒度位段边界所用单位,为0表示字节,即段的最大长度为220B=1MB,为1表示页,在80___/80___中,每页为4KB,即段的最大长度为220×4KB=4GB,Pentium则提供了4KB和4MB两种页面选择
⑦D为缺省操作数长度,为0表示16位,为1表示32位该位仅对代码段有效这些段描述符存放在两个系统表格GDT和LDT中GDT是全局描述符表,存放着操作系统使用的和各任务公用的段描述符;LDT是局部描述符表,存放着某个任务专用的段描述符程序或系统中装入段选择器的也不再是直接的段基址,而是一个指向某个段描述符的16位的段选择符,其格式如图
2.9所示其中b1b0位为请求特权级字段RPL,这两位提供0~3级4个特权级用于保护;b2位为表指示符字段TI,指明本段描述符是在GDT中还是LDT中;b15~b3这13位构成描述符索引字段INDEX,用于指明段描述符在指定描述符表中的序号图
2.9段选择符格式当将一个选择符装入一个段选择器给段选择器预置初值时,处理器将自动从GDT或LDT中找到其对应的描述符,装入相应段寄存器的描述符高速缓存器中该过程对用户来说是透明的如图
2.10所示,当将一个选择符装入DS段选择器时,处理器根据INDEX和TI指示自动从LDT中找到第64个描述符装入DS段寄存器的描述符高速缓存器以后,每当访问存储器时,与所用段相关的段描述符高速缓冲器就自动参与该次存储器访问操作段__址成为线性地址或物理地址计算中的一个分量,界限用于段限检查操作,属性则对照所要求的存储器访问类型进行检查即线性地址=段描述符高速缓存器中段基址+偏移地址不使用页部件时,线性地址即为物理地址;使用页部件时,上述线性地址需经页管理部件使用页目录表和页表转换成物理地址图
2.10由段选择器指示自动装入段描述符
2.系统寄存器Pentium微处理器中包含一组系统级寄存器即5个控制寄存器CR0~CR4和4个系统地址寄存器这些寄存器只能由在特权级0上运行的程序一般是操作系统访问1控制寄存器Pentium微处理器有5个控制寄存器,如图
2.11所示这些寄存器用来存放全局特性的机器状态和实现对80X86/Pentium微处理器的多种功能的控制与选择图
2.11控制寄存器1控制寄存器CR0共定义了11个控制位在80286微处理器中,CR0称为机器状态字MSW__chineStatusWord为一16位寄存器,定义了PE、MP、EM和TS4位80___在此基础上扩充了ET和PG两位80___以上微处理器在80___的基础上又扩充了NE、WP、AM、NW和CD这5位11个控制位分别定义如下
①PE为保护允许位,该位为1表示允许保护,为0则以实地址方式工作
②MP为监控协处理器位,MP位同TS位一起使用,用来确定WAIT指令是否自陷当MP=1,且TS=1时,执行WAIT指令将产生异常7
③EM为仿真协处理器位,用以确定浮点指令是被自陷,还是被执行EM=1,所有浮点指令将产生异常7
④TS为任务切换位,用以指出任务是否切换,执行切换操作时,TS=1TS=1时,执行浮点指令将产生异常7
⑤ET是处理器扩充类型,该位用于80___微处理器,标识系统中所采用的协处理器的类型ET=1,采用80387协处理器,否则采用8028780___以上系统中ET置1
⑥NE是数字异常控制位,该位用于控制是由中断向量16还是由外部中断来处理未屏蔽的浮点异常NE=0,处理器同IGNNE输入引脚和FEPR输出引脚配合工作;NE=1,在执行下一条非控制浮点指令或WAIT指令之前,任何未屏蔽的浮点异常UFPE将产生软件中断16
⑦WP是写保护位,用来保护管理程序写访问用户级的只读页面该位为1时,禁止特权级程序对只读页面的写操作,否则允许只读页面由特权级0~2写入
⑧AM是对准屏蔽位,用来控制标志寄存器中对准检查位AC是否允许对准检查AM=1,允许AC位;否则禁止AC位
⑨NW为不通写控制位,该位用来选择片内数据Cache的操作模式NW=1时,禁止通写,写命中时不修改内存;否则,允许通写⑩CD是Cache禁止或使能位,该位用来控制允许或禁止向片内Cache填充新数据CD=1,当Cache未命中时,禁止填充Cache;否则,未命中时,允许填充CachePG为页使能位,用于控制是否允许分页PG=1,允许分页,否则禁止分页2CR2是页故障线性地址寄存器,用来保存发生页故障中断异常14之前所访问的最后一个页面的线性页地址用软件读出即可得到发生页故障的线性地址CR2由80___以上微处理器定义3CR3是页目录__址寄存器,用来存放当前任务的页目录表的物理__址由于页目录表是按页对齐的4KB,因而CR3通过高20位来实施这一要求,而低12位保留或定义为其他用途CR3是80___以上微处理器才使用的,在80___中新定义了PWT和PCD两个控制位PWT是页面通写位,用于指示是页面通写还是回写,该位为1,外部Cache对页目录进行通写,否则进行回写;PCD是页面Cache禁止位,该位用于指示页面Cache工作情况,PCD=1,禁止片内Cache,否则允许片内页Cache这两个位只有在CR0中的页管理使能位PG=0或Cache不使能位CD=1时才有效4CR4是Pentium处理器中新增加的控制寄存器,共定义了6位,各位含义如下
①VME是虚拟方式扩充位,VME=1,允许虚拟8086方式扩充,否则禁止
②PVI是保护方式虚拟中断位,PVI=1,允许保护方式虚拟中断,否则禁止
③TSD是时间戳禁止位,该位为1,且当前特权级不为0时,禁止读时间戳计数器指令RDTSC,否则RDTSC将在所有特权级上执行
④DE是调试扩充位,该位用来控制是否支持I/O断点,当DE=1时,允许I/O断点调试扩充,否则禁止I/O断点调试扩充
⑤PSE是页尺寸扩充位,该位为1,允许页面大小扩充,每页为4MB,否则禁止页面大小扩充,每页仍为4KB
⑥M__是机器检查允许位,该位为1,允许机器检查异常,否则禁止机器检查异常2系统地址寄存器系统地址寄存器只在保护方式下使用,所以又叫保护方式寄存器80X86/Pentium用4个寄存器把在保护方式下常用的数据__址、界限和属性保存起来,以确保其快速性这4个寄存器如图
2.12所示图
2.12系统地址寄存器1全局描述符表寄存器GDTR全局描述符表寄存器GDTR是一个48位字长的寄存器对80286而言,为40位寄存器,用于存放全局描述符表GDT的32位或24位线性__址和16位界限全局描述符表GDT是80X86/Pentium用来定义全局存储器地址空间的一种机制全局存储器是一种可能被许多或所有软件任务共享的通用系统资源也就是说,全局存储器中的存储器地址可被微处理器上的所有任务访问该表存放着操作系统使用的和任务公用的段描述符,这些描述符标识全局存储器中的段用GDTR定义的全局描述符表如图
2.13所示GDT的最大长度为216字节64KB,由于每个描述符占8个字节,即GDT中最多能定义213=8192个段描述符图
2.13GDTR与它定义的全局描述符表2中断描述符寄存器IDTR中断描述符表寄存器IDTR也是一个48位字长的寄存器对80286而言,为40位寄存器,用于存放中断描述符表IDT的32位或24位线性__址和16位界限3局部描述符表寄存器LDTR局部描述符表寄存器LDTR也是80X86/Pentium存储器管理支持机制的一部分每个任务除了可访问全局描述符表外还可访问它自己的专用描述符表该专用表称为局部描述符表LDT,它定义了任务用到的局部存储器地址空间LDT中的段描述符可用来访问当前任务的存储器段中代码和数据由于每项任务都有它自己的存储器段,因此保护模式的软件系统可能会包含许多局部描述符表所以,与段寄存器一样,LDTR值并不直接定义一个局部描述符表它只是一个指向GDT中LDT描述符的选择符,所以LDTR和TR也称为系统段寄存器如图
2.14所示,当LDTR中装入选择符时,相应的描述符就能够从GDT中读出来并装入LDTR的描述符高速缓存器,从而为当前任务建立了一个LDTLDT的最大长度也为64KB,即LDT中最多也只能定义8192个局部段描述符图
2.14LDTR和它定义的局部描述符表4任务寄存器任务寄存器TR在保护模式任务切换机制中很重要与LDTR一样,该寄存器存放的也是一个称为选择符的16位索引值TR开始的选择符由软件装入,它开始第一个任务这之后再执行任务切换的指令时就自动修改选择符图
2.15所示,TR中的选择符用来指示全局描述符表中描述符的位置当选择符装入TR中的时候,相应的任务状态段TSS描述符自动从存储器中读出并装入任务描述符高速缓存中该描述符定义了一个称为任务状态段TSS的存储块,它提供了段起始地址Base和段界限Limit每个任务都有它自己的TSSTSS包含启动任务所需的信息,诸如用户可访问的寄存器初值图
2.15任务寄存器和任务切换机制
3.调试和模型专用寄存器Pentium处理器中提供了一组调试寄存器和一组模型专用寄存器,用于排除故障和用于执行跟踪、性能监测、测试及机器检查错误1调试寄存器DebugRegister调试寄存器如图
2.16所示,这是一组32位的寄存器,是程序员可访问的,提供片上支持调试80___/80___定义了6个调试寄存器,其中DR0~DR3指定了4个线性断点地址;DR7为调试控制寄存器,用于设置断点;DR6为调试状态寄存器,用于显示断点的当前状态图
2.16调试寄存器Pentium处理器对调试寄存器DR4和DR5给予调试寄存器DR6和DR7的别名当控制寄存器CR4中的DE位设置为0时,即禁止调试扩充,Pentium通过允许引用DR6和DR7的别名保持与现有软件兼容;当DE位设置为1时,即允许调试扩充,引用DR4或DR5将产生未定义的操作码异常2模型专用寄存器Pentium处理器取消了80___/80___中的测试寄存器TR,其功能由一组“模型专用寄存器”MSRModelSpecialRegister来实现,这一组MSR用于执行跟踪、性能监测、测试和机器检查错误Pentium处理器采用两条指令RDMSR读MSR和WRMSR写MSR来访问这些寄存器,ECX中的值8位值确定将访问该组寄存器中哪一个MSR表
2.5给出了所有模型专用寄存器MSR与需要装入ECX值的关系表
2.5模型专用寄存器与ECX的关系ECX寄存器名说明00H机器检查地址引起异常周期的存储器地址01H机器检查类型引起异常周期的存储周期类型02H测试寄存器1奇偶校验逆寄存器03H保留04H测试寄存器2指令超高速缓存结束位05H测试寄存器3超高速缓存测试数据06H测试寄存器4超高速缓存测试标志07H测试寄存器5超高速缓存测试控制08H测试寄存器6TLB测试线性地址09H测试寄存器7TLB测试控制和物理地址A31~A120AH测试寄存器8TLB测试物理地址A35~A320BH测试寄存器9BTB测试标志0CH测试寄存器10BTB测试目标0DH测试寄存器11BTB测试控制0EH测试寄存器12执行跟踪和转移预测0FH保留10H时间戳计数器性能监测11H控制和__选择性能监测12H计数器0性能监测13H计数器1性能监测14H保留
2.
3.3Pentium的四种工作方式Pentium在80___三种工作方式的基础上新增了一种系统管理方式,使Pentium微处理器具有了四种工作方式,即实地址方式、保护虚拟地址方式、虚拟8086方式和系统管理方式
1.实地址方式实地址方式是为了与8086兼容而设置的一种工作方式在这种工作方式下,Pentium的工作原理与8086的工作原理相同,所以实地址方式又称为8086方式在实地址方式下,Pentium的地址线中只有低20条地址线起作用,即能寻址的物理存储器空间为1MB其中两个物理存储空间00000000H~000003FFH和FFFFFFF0H~FFFFFFFFH是需要保留的前者为中断向量区,后者为CPU加电或复位时程序的启动地址系统复位时CR0的PE位自动清0,进入实地址方式,此时,CS寄存器所对应的描述符寄存器中的__址为FFFF0000H,段边界为FFFFH,EIP=0000FFF0H,即程序的执行地址=__址+EIP=FFFFFFF0H程序就从此地址开始运行当首次遇到段间转移或段间调用指令时,物理地址又自动置为000XXXXXHX为任意值,由执行的指令而定,从而进入实地址方式下的物理地址空间此时,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.系统管理方式__MPentium处理器除了上述三种工作方式外,增加了一种系统管理方式System__nagementMode,__M__M可使设计者实现高级管理功能,如对电源管理以及为操作系统和正在运行的程序提供安全性,而它最显著的应用就是电源管理__M可以使处理器和系统__部件都休眠一定时间,然后在有一键按下或鼠标__时能自动唤醒它们,并使之继续工作利用__M可实现软件关机图
2.18Pentium四种工作方式的相互转换__M主要为系统管理而设置,与保护方式一样,是Pentium的一个主要特征在硬件的控制下,可从任何一种方式进入__M方式,事后再返回原来方式四种方式间转换关系如图
2.18所示,其中表示系统管理中断__有效,R__表示系统管理方式返回指令。