微处理器结构及其特点.ppt
《微处理器结构及其特点.ppt》由会员分享,可在线阅读,更多相关《微处理器结构及其特点.ppt(173页珍藏版)》请在三一办公上搜索。
1、第八章 80286 微处理器结构及其特点,8.1 80286微处理器结构概述 8.2 80286微处理器的指令设置 8.3 虚拟地址变换和存贮器管理 8.4 描述符 8.5 保护机构和控制转移 8.6 任务切换 8.7 中断 8.8 80286总线及系统初始化,8-1 80286微处理器结构概述,一、实模式和保护模式 80286具有两种工作模式。第一种是仿真8086的实模式(或称实地址模式)。另一种是80286新增加的,功能非常强的保护模式(或称保护虚拟地址模式)。实模式工作的80286,实质上是兼容8086的高速型工作模式。,二、80286的内部结构 8086微处理器内部由执行单元和总线接口
2、单元两大部分组成。而80286恰好与此不同,它由总线单元、指令单元、执行单元及地址单元4大部分组成。这些单元可以同步地并行工作,实现流水线作业,避免了传统的顺序处理方式,最大限度地发挥了处理器的性能,从而使总线的利用率处于最佳状态。80286内部结构框图崐如图8-1所示。,图8-1 80286的内部结构框图,1.总线单元(BUS Unit:BU)总线单元生成存贮器及I/O请求所必须的地址、数据、指令信号,并执行CPU的所有总线操作。另外,总线单元还控制与80287浮点处理器的接口。2.指令单元(Instruction Unit:IU)指令单元从预取队列中按字节取出指令代码,并进行译码。译码后的
3、指令以69位的内部格式展开,然后放入能容纳3个指令的译码缓冲器(69位3)中。,3.执行单元(Execution Unit:EU)在执行单元中,除ALU外,还包括1536字35位(约54000位)的微代码ROM,寄存器阵列,中断控制电路及向段寄存器装载时的测试电路等。这些电路能保证有效地执行已被译码的命令。4.地址单元(Address Unit:AU)在地址单元中,由偏移量加法器进行有效偏移地址计算时,要对其偏移量的段界限进行检查,并且还要对段的存取权进行检查,最后才进行从虚拟地址到物理地址的转换。,三、流水线作业的高速总线周期 80286与8086时分总线不同,它的地址总线和数据总线相互独立
4、。在一个总线周期中,当有效数据置于数据总线上时,下一个总线的地址已开始输出到地址总线上,从而实现流水线作业的总线周期方式。另外,8086的总线周期基本上由T1、T2、T3、T4 4个时钟周期构成,而80286的总线周期基本上由TS(Send Status)和TC(Perform Command)两个时钟周期来实现。,在图8-2中示出了在假定存取时间完全相同情况下,80286的总线周期和以往的CPU的总线周期相比,采用流水线作业后,其性能是怎样提高的。当然图8-2中的定时关系完全是概略的,不是正确的定时关系。,图8-2 80286总线周期和以往CPU总线周期的比较,四、内部寄存器的设置 在808
5、6内部寄存器设置的基础上,为了适应保护模式的需要,80286增加了几个寄存器。在图8-3中示出了80286的寄存器设置情况。,图8-3 80286内部寄存器设置,由图8-3可知,80286内部寄存器可以分成四类:通用寄存器;状态控制寄存器;段寄存器;系统表寄存器。,首先是通用寄存器,它们的设置和8086一样,共有8个16位的寄存器,即AX,BX,CX,DX,BP,SP,SI,DI。在状态控制寄存器中,又可分成三个:IP(Instruction Pointer);标志寄存器 MSW。标志寄存器及MSW(处理器状态字)的设置情况如图8-4所示。,图8-4 80286标志寄存器及MSW设置情况,图8
6、-3(d)中的系统表寄存器,是为了管理保护模式下的四个系统表而设置的。这四个系统表是:GDT(Global Descriptor Table:全局描述符表);IDT(Interrupt Descriptor Table:中断描述符表);LDT(Local Descriptor Table:局部描述符表);TSS(Task State Segment:任务状态段)。,8-2 80286微处理器的指令设置,一、按处理器级别进行分类 80286的指令设置,如从处理器级别来看,如图8-5所示,有三个台阶,可以分成三类:8086的指令设置;80186增加的扩充指令设置;只能允许80286使用的系统控制指
7、令和存取权操作指令,图8-5 80286指令设置的台阶,1.扩充指令设置 80286中属于扩充的指令主要有:8位立即数操作的移位/循环指令;16位寄存器/存贮器操作和8/16位立即数的带符号乘法,其积存入16位寄存器的IMUL指令;对立即数操作的PUSH指令;8个通用寄存器可以一次压入/弹出的PUSHA/POPA指令;I/O与存贮器之间可以进行数据块传送的INS/OUTS指令;,保护主程序堆栈指示器,生成新的堆栈区及工作区的ENTER指令;释放由ENTER指令生成的堆栈区或工作区,恢复主程序堆栈指示器的LEAVE指令;8检查数组索引是否在指定范围内的指令BOUND。,2.系统控制及存取权操作指
8、令设置 下面所列出的指令,是为了在保护模式中对系统表及系统状态进行控制和进行段存取操作而设置的。(1)系统控制命令设置 首先是系统表操作命令。由于在保护模式中有四个系统表寄存器,即GDTR、IDTR、LDTR、TR。因此配备了相应的装入及存贮指令。,LGDT/SGDT(Load GDTR/Store GDTR)装入和存贮全局描述符表寄存器指令;LIDT/SIDT(Load IDTR/Store IDTR)装入和存贮中断描述符表寄存器指令;LLDT/SLDT(Load LDTR/Store LDTR)装入和存贮局部描述符表寄存器指令;LTR/STR(Load TR/Store TR)装入和存贮任
9、务状态段指令。,另一种是系统状态控制指令。它们是装入/存贮MSW指令及清除MSW中的TS位指令。LMSW/SMSW(Load MSW/Store MSW)装入和存贮MSW指令;CLTS(Clear Task Switched Flag)清除MSW中的TS位指令。这三条指令在实模式中同样也是有效的。,(2)存取权操作指令设置 虽然80286在工作中可以由硬件对段的存取权进行自动的检查,但是,还准备了进一步强化该功能的软件检查指令。这些指令的详细内容,在后面章节中再作说明,这里只作一概要归纳。,ARPL(Adjust RPL field of selector)禁止使用不正确的段参数;VERR/V
10、ERW(VERify a segment for Reading/Writing)段读/写权的检查;LSL(Load Segment Limit)段界限的取出;LAR(Load Rights byte)存取权字节的取出。,二、按特权级进行分类 除英特尔公司以外,几乎所有的其它公司生产的16位及32位微处理器中,都有两种不同的软件执行模式,即管理模式(系统模式)和用户模式(正常模式)。所谓管理模式,就是系统处于执行系统程序的状态;所谓用户模式就是系统处于执行用户程序的状态。在系统中系统程序和用户程序是分离的,存放于不同的存贮空间之中,分别处于二种不同的级别。这样就可以避免用户程序对系统程序区的错
11、误操作。,在8086的系统中,由于系统程序和用户程序是放在一起的,同属一个级别,因此用户程序运行中就有可能破坏系统程序。80286的保护模式就改善了这样的系统环境,如图8-6所示,不是2级而是扩展到4级。,图8-6 4级特权保护结构示意图,另一方面,虽然I/O空间是各任务共有的,可共同使用64 K字节的I/O空间。但是,每个任务对I/O的存取操作的最大特权级是可以规定的,决定这个特权级的是标志寄存器新增加的IOPL域(I/O特权域),共有2位。与这2位的值(从03)比较,现行程序的特权级低时,就禁止现行程序对I/O进行操作。“现行程序的特权级别”简称为CPL(Current Privilege
12、 Level)。,1.非特权级指令 与CPL及IOPL的值无关的指令,都属于这类指令。2.信任指令(trusted instruction set)这类指令只是在CPLIOPL时才能执行的指令。在CPLIOPL的情况,如果执行这类指令就会产生13类中断(一般保护异常中断)。信任指令有以下几条。IN/OUT;INS/OUTS;CLI/STI;LOCK。,3.特权指令(privileged instruction set)这类指令只有在CPL=0情况下才能执行,即特权级为0的可靠性最高的程序(通常是操作系统的内核)才能使用。如果特权级不为0的程序使用了这些指令,就会产生13类中断(一般保护异常中断
13、)。其特权指令如下:,LGDT;LIDT;LLDT;LTR;LMSW;CLTS;HLT。,8-3 虚拟地址变换和存贮器管理,一、80286虚拟存贮的概述 在8086情况下,从程序的角度来看,逻辑地址空间(软件上的空间)和实际物理地址空间(硬件上的空间),最大为1M字节。,在保护模式下的虚拟存贮系统中,16M字节实存贮器装不下的那些程序段(一段为64K字节以下,长度可变),可以以文件形式存于外部高速存贮器中,如硬磁盘、光盘等。由于在程序中可以使用当前在实存中不存在的逻辑地址,因此,通常把逻辑地址称为虚拟地址。在应用程序中,程序员只需参照虚拟地址,而无需关心系统是如何对物理地址进行操作的。当然,外
14、存贮器容量愈大,虚拟地址也可以扩至更大。,图8-7 虚拟地址至实地址的变换示意图,二、根据描述符表进行虚拟地址变换 在8086中,对1 M字节的实存空间进行寻址时,其地址是这样产生的,即将16位段寄存器的内容左移4位,形成20位的段基地址,再加上16位的偏移地址,最后就得到要寻址的地址。80286的实模式与上述情况完全一样。只是8086中的段寄存器对应于80286 64位段寄存器中的选择器域(16位)。另外,在这种情况下一个段的物理尺寸为64 K字节,是固定不变的。,在保护模式中,80286的段寄存器的选择器域的作用,尽管也是用来指定一个段的存贮空间。但是,选择器域的值作为一个指示器,将指向描
15、述符表的表地址,经查表再间接地确定实存上的段地址。图8-8对二种工作模式下的寻址情况作了比较。图8-9示出了保护模式下的段选择器的格式。,图8-8 实模式和保护模式寻址比较,图8-9 段选择器的格式,在图8-9中,最低2位的RPL(Requested Privilege Level)域不作虚拟地址变换,用于特权级间的保护检查。段选择器余下的14位(TI位和索引域)能够用来选择虚拟地址空间的一个段。这样,虚拟地址空间可有214个段。由于段偏移量为16位,一个段的最大尺寸为64 K字节,因此虚拟地址的最大空间应为214216=230(字节),即为1G字节。上述的1 G字节虚拟地址空间再一分为二,各
16、自分配作全局地址空间和局部地址空间(每个部分为213个段)。,全局地址空间由所有任务共享,这样就避免了相同功能的系统服务程序在各任务中重复出现,使数据共享和中断处理控制变得更容易。因此,在全局地址空间中可以放置操作系统软件、库程序、可公共调用的系统服务程序过程及数据等。局部地址空间是每个任务独立的地址空间,它放置各任务固有的代码和数据。这样做能使各任务的虚拟地址空间分离,如图8-10所示。,图8-10 全局和局部地址空间示意图,图8-11 用描述符表进行从虚拟地址到实地址的变换,描述符的种类很多,如果用段选择器来选择代码/数据段描述符时,那么一个段物理地址信息(即段基地址24位和界限16位)就
17、随之被确定下来了。这时,实存中所指定段内的某一个地址就由段的基地址和16位的偏移地址所决定。这样一来,1 G字节的虚拟地址空间就变换成了16 M字节的实地址空间,这个变换过程如图8-12所示。,图8-12 从虚拟地址至实地址的变换示意图,1.段地址变换寄存器 在保护模式中,每次段内操作都要通过实存中的描述符,将虚拟地址变换成实存的物理地址。这样做系统开销太大,很难在实际中应用。为此,在装载段寄存器时,段选择器所选择的描述符的6个字节(48位)有效信息,也自动地装入到80286内部的段寄存器高速缓冲器域(48位)。此后,在段内进行存取操作时,就可以使用高速缓冲器域的值进行高速的虚拟地址变换。通常
18、,段寄存器变更总是不太频繁的,所以采用段高速缓冲器的方法是非常有效的。在图8-13中表示了使用段高速缓冲器进行虚拟地址变换的过程。,图8-13 利用段高速缓冲器进行虚拟地址变换的过程,2.描述符表寄存器 描述符表寄存器有三种,即GDTR、IDTR、LDTR,它们分别与GDT、IDT、LDT相对应,如图8-14所示。GDTR是存放GDT的基地址(24位)、界限(16位)的40位寄存器。根据GDT的界限规定,系统禁止超出GDT界限范围的存取操作。GDTR用LGDT指令将存贮器中的6个连续字节装载其中,从而完成初始化操作。IDTR的初始化和GDTR完全相似,LIDT/SIDT是IDTR的装载和存贮指
19、令,其各自操作情况与LGDT/SGDT相同,如图8-15所示。,图8-14 描述符表寄存器,图8-15 GDTR和IDTR的操作,8-4 描 述 符,一、描述符的分类 描述符表内所包含的描述符如表8-1所示。如按大类来分,可以分为段描述符和控制门描述符。段描述符再进一步细分,还可分为一般的段(代码段和数据段的描述符)和特殊段(与LDT和TSS有关的LDT描述符和TSS描述符)。,表8-1 描述符分类,控制门描述符有以下4种:控制门;任务门;中断门;陷井门。,表8-2 在描述符表中可配置的描述符种类,二、段描述符 段描述符有一般段描述符和特殊段描述符两种。它们最前面的2个字节为段界限,接着三个字
20、节为段基地址。再后面一个字节就是描述符的存取权字节,其中位4的S位为段分类标志位。若S=1,则该描述符为一般段描述符;若S=0,则为特殊段描述符(门描述符的S位也应为0)。,1.一般段描述符 一般段描述符分为代码段描述符(图8-16(a)和数据段描述符(图8-16(b),两者用存取权字节的位3 E位(Executable:可执行)的值加以区分。若E=1,则该描述符为代码段描述符;否则,E=0则为数据段描述符。,图8-16 一般段描述符(a)代码段描述符;(b)数据段描述符,图8-17 2类数据段的结构,图8-18 段寄存器,代码/数据段描述符及 代码/数据段之间的关系,表8-3 可装入段寄存器
21、的描述符种类,2.特殊段描述符 特殊段描述符如图8-19所示,可分成LDT描述符和TSS描述符。这2个描述符的存取权字节的位4(S位)都是“”。另外,若存取权字节的低4位的值为2,表示该描述符为LDT描述符;若低4位的值是1或3,则该描述符为TSS描述符。因此,所谓特殊段,即是指LDT或TSS段。,图8-19 特殊段描述符(a)LDT描述符(2类型);(b)TSS描述符(1或3类型),LDT已经说明,有关TSS的情况将在任务切换章节中说明。需要指出的是TSS描述符所指定的段是一个由44个字节组成的任务状态段,在这个段中存放着的是各任务执行时的CPU寄存器内容。每个任务都有自己的LDT和TSS,
22、随着任务的切换,LDT和TSS也将自动地更新。这时新任务的LDT描述符和TSS描述符被自动地装载到LDTR和TR的高速缓冲器域。,GDT和IDT虽然也是特殊段,但是由于它们是所有任务共享的,在系统中分别只有一个。为此,不需要有指定它们的描述符。这样,在GDTR和IDTR中就没有设置选择器域。LDT/TSS描述符的最前面的两个字节是LDT/TSS的界限,接着3个字节是LDT/TSS的基地址。由于TSS的尺寸为44个字节,所以TSS描述符的界限域值必须大于43。在图8-20中表示了LDTR、LDT描述符及LDT的关系。另外,在图8-21中还表示了TR、TSS描述符及TSS的关系。,图8-20 LD
23、TR、LDT描述符及LDT的关系,图8-21 TR、TSS描述符及TSS的关系,三、门描述符 门描述符(以下只简称为门)如图8-22所示,有在同一任务内进行控制转移用的调用/中断/陷井门及任务间进作控制转移的任务门。使用这些门,可以使处理器转向执行另外的程序。在用程序访问门时,只使用虚拟地址的选择器,而忽略地址偏移量,因为门描述符是一个特殊的段。,图8-22 门描述符(a)调用门描述符(类型4);(b)任务门描述符(类型5)(c)中断门描述符(类型6);(d)陷井门描述符(类型7),表8-4 各类描述符的构成,8-5 保护机构和控制转移,一、保护机构的分类 80286的保护机构可以分为如下三类
24、。1.段属性和界限保护 根据对段属性(只执行,可读,只读,可写)和界限的检查,禁止不正确的段操作。,2.特权级之间的保护 最多可使用4个特权级,使得OS等系统程序和应用程序明确分开。为了支持这种功能,准备了三个特权级参数(DPL、CPL、RPL)及门。3.任务间的保护 每个任务都可以使用由LDT所定义的专用局部虚拟地址空间,防止带有错误的应用任务对其它任务进行不正常的干涉。,二、段存取时的保护 1.装载段寄存器时的检查 在用JMP/CALL/RET及IRET指令向段外转移时,要更新CS寄存器内容;或者用MOV,POP,LDS,LES指令装入SS,DS,ES时都要进行保护检查。下面以“MOV D
25、S,AX”指令的装入过程崐为例作一说明。使用其它指令装入段寄存器的检查过程也与此相同。,“MOV DS,AX”指令执行时的检查过程如图8-23所示。首先用AX寄存器中的选择器的TI位选择GDT(“0”)或LDT(“1”)。然后将索引域的值乘8,加上描述符的基地址,就得到描述符地址。这时检查一下,所访问的描述符位置是否在界限之内,若不在有效的界限内,就产生13类一般保护异常中断。,图8-23 装载段寄存器时的检查(a)第一步:界限检查;(b)第二步:存取权检查,图8-23 装载段寄存器时的检查(a)第一步:界限检查;(b)第二步:存取权检查,2.实地址计算时的检查 所谓实地址计算检查,就是在对由
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微处理器 结构 及其 特点
链接地址:https://www.31ppt.com/p-6185247.html