位微机原理新位CPU课件_第1页
位微机原理新位CPU课件_第2页
位微机原理新位CPU课件_第3页
位微机原理新位CPU课件_第4页
位微机原理新位CPU课件_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章 32位微处理器组成原理 2.1 32位CPU的基本结构 2.2 寄存器组成和用途 2.3 指令流水线操作重点理解、掌握的内容1.32位CPU的基本组成及工作原理;2.32位CPU的引脚功能及应用技术;3.32位CPU的工作方式;4.寄存器的应用编程。2.1 CPU的基本结构2.1.1 几种典型Intel CPU简介1、8086 (16位CPU)外部数据总线16位,地址总线20位(寻址范围220=1MB)。 2、80386 (32位CPU)32位内部体系结构,32位外部数据总线,32位地址总线(实内存232=4GB,虚拟空间=64TB)三种工作方式:实方式; 保护方式; 虚拟8086方式

2、。采用流水线技术和指令预取.3、80486 (32位CPU)32位内部体系结构;32位外部数据总线,32位地址总线;三种工作方式:实方式; 保护方式; 虚拟 8086方式。采用流水线技术和指令预取技术;片内含8KB高速缓存(Cache);片内含浮点运算单元(FPU).4、Pentium (32位CPU)32位内部体系结构;64位外部数据总线,36位地址总线;片内含8KB指令Cache和8KB数据Cache;工作方式新增加了一种系统管理方式(SMM);采用超标量流水线技术;片内含浮点运算单元(FPU). 2.1.2 CPU的内部结构 80486CPU内部由八大部件组成:总线接口、高速缓存、代码预

3、取、指令译码、浮点数、执行部件、段部件、分页部件。 总线接口包括三总线,完成内部与外部总线的联系,在内总线信号控制下,把内总线上的信息送到外总线上,或将外总线上的信息接受到内总线,并产生相应的控制信息。高速缓存用于减少对内存的访问次数,减少程序运行时间,486以上CPU内部有2个高速缓存:一个程序缓存器,一个数据缓存器。代码预取对代码做取入,排队分析、分解等译码前期准备,利用总线空闲周期把后续指令取入指令队列中,预处理后供译码部件使用,缩短了译码时间。指令译码对指令译码,把指令的作用含义转换成相应的内部功能控制信号指挥各部件协同工作。浮点运算486以上CPU内部有浮点运算部件,专门完成浮点 运

4、算、双精度运算等数学运算任务,执行部件完成一般算术运算、逻辑运算以及数据传送等任务,大部分指令所要求的操作都有该部件完成,是CPU的核心部件。段部件把指令指定的逻辑地址变换为线性地址,在变换中实现任务间的保护和虚拟内存技术,它包含6个段寄存器。分页部件把段部件输出的线性地址转换成物理地址,实现以少量的内存模拟大容量内存,提高了内存的利用率,当命令该部件不工作时,线性地址就成为物理地址2.1.3 80486微处理器外部封装引脚 80486的CPU有168个引脚,方形封装;Pentium的CPU引脚有237个以上,引脚都采用格栅阵列插针(PGA)封装。在微机主板上有相应的插座安装微处理器。尽管各种

5、CPU的引脚数目不同,但它们的引脚功能分类大体相同:数据总线、地址总线和控制总线系统三总线同名引脚的功能相同。BREQ总线请求输出,总线周期在内部执行时,CPU发出此信号;HOLD总线请求输入,总线仲裁M/IOD/CW/RLOCKPLOCK总线周期定义80486CPUA2-A31BE3BE2BE1BE032位地址总线HOLDHLDABOFFBREQ总线仲裁总线宽度BS8BS16CLKADSRDYRST总线控制中断信号INTRNMIINTAFERR数据错13IGNNE报告不理A20M屏蔽A20奇偶DP3DP2DP1DP0一、地址总线:A2A31,形成32位地址总线,可寻址4GB内存空间,BE0B

6、E3字节允许,BE0允许D0D7; BE1允许D8D15 ; BE2允许D16D23; BE3允许D24D31 。另有64KI/O端口物理地址。 二、32位数据总线:可分为4个八位,由BS8和BS16决定传送的数据是8位或16位,若 BS8和BS16无效传送32位。具体传送哪8位,由BE0BE3决定。三、控制总线:1.时针(CLK)为CPU提供基本定时和内部工作频率,所有外部定时计数都是相对CLK上升沿指定的。 2.总线控制信号指明总线周期何时开始,并允许其他系统硬件控制数据总线宽度与总线周期的终止。 ADS “地址状态输出。表示地址和数据周期定义信号均有效。使CPU已启动了一个总线周期。D0

7、D3132位数据总线 RDY “准备就绪”信号,有效时,表示数据线上有数据输入,可读取数据操作。 写操作时表示外设已接收到了CPU发出的信息。3. 总线周期定义信号M/IO用来区分内存和I/O周期,D/C区别数据和控制周期 ,W/R区别读/写周期LOCK总线锁定输出低电平时,表示当前的总线周期 被锁定,CPU独占系统总线,运行在读 改写周期中,在写、读周期之间,不得放弃外部总线。 PLOCK 伪锁定与LOCK不同的是当前操作需要多一个总线周期,该端输出低电平时,表示当前总线周期和下一个总线周期被锁定,使CPU的数据读改写操作能够连续完成。 总 BREQ当总线周期在内部执行时,发出此信号,线 表

8、示CPU正在使用总线 。仲 HOLD总线请求输入,是总线上其他设备向CPU裁 申请控制总线的信号接收端。HLDA输出有效,表明CPU已将总线交给了另外一个本地的总线 设备。当请求设备脱离总线时, CPU恢复对总线的控制。 BOFF输入强调要求CPU在下一个时钟周期释放其对总线的控制总线宽度控制: 根据外设的总线宽度需要向CPU发来BS8和 BS16 请求,当BS8有效时,总线传送8位数据;当BS16有效时,总线传送16位数据;当两者均有效时,总线传送32位数据。中断信号: INTR是外设可屏蔽中断信号输入端,其信号受IF标志位的控制若IF=1,允许CPU响应中断,且CPU进入中断响应,执行中断

9、服务;若IF=0,不允许CPU响应中断,则继续执行原来的程序。INTA中断请求响应信号,CPU响应INTR后,先向申请中断请求的设备回 应INTA,并进入第一个中断响应总线周期,然后再发一个INTA, CPU进入第二个中断响应总线周期,这时,CPU从数据总线上读取中断类型码。开始转到相应的中断服务子程序执行程序。NMI外部非屏蔽中断请求输入端,此信号不受IF控制,该信 号一旦有效,当前指令执行完毕后,CPU立马响应,并 执行其中断服务程序。而且不需要发出中断应答信号。RESET发出该信号后,所有寄存器处于初始状态, CPU将从 0FFFFFFF0H单元开始执行指令。 数值出错报告FERR 浮点

10、错输出信号:表示浮点协处理器发生错误,产生中断13 ; IGNNE 忽略数值错输入信号:导致协处理器不理睬浮点错继续处理数据。 地址位A20由外部电路使A20的屏蔽信号有效时,将80486内 存空间限制在00000H0FFFFFH的1MB物理间,使80486工作在实地址方式。DP0D0D7数据线的奇偶校验; DP1D8D15数据线的奇偶校验; DP2D16D23数据线的奇偶校验; DP3D24D31数据线的奇偶校验。 PCHK若为低电平,则表示数据线有奇偶校验错。 4、基本时序 80486微机的一般总线周期至少占用两个时钟的时间,即:“读”和“写”都要两个时钟,这称作:22周期。第一个“2”对

11、应“读”,第2个“2”对应“写” 。 如果在“读”或“写”中增加了等待状态,则在“读”、“写” 对应的位置加上等待状态数。 例如:“写”操作需增加一个等待状态,则称为:23周期。 80486CPU在读周期结束之后的一个时钟内输出PCHK信号为低时,表示上一个周期所读数据的校验有一个偶错。 T1 T2 T1 T2 T1 T2 CLKADSBS0BE3A2A31M/IO、D/CW/RRDYD0D31PCHK读写读 (2)插入等待状态的时序 当存储器或I/O的速度跟随不上总线操作速度时,就不会发出RDY的有效信号,此时微处理器就会自动插入等待状态。只要RDY是无效的,任意数量的等待状态都会加到总线周

12、期中去。 其图如下页所示: T1 T2 T2 T1 T2 T2 T1CLKADSBS0BE3A2A31M/IO、D/CW/RRDYD0D31读写33 总线周期时序图2.3.4 3种工作方式的状态转换 80486的三种工作方式: 即: 实地址方式、 保护方式 虚拟8086方式. 2.3.4 3种工作方式的状态转换 实地址方式保护方式虚拟8086方式CPU复位CR0中PE位=1CR0中PE位=0执行IRETD指令或进行任务转换执行中断采用实地址方式2.1.3、 80486CPU的组成原 理及内部体系结构 80486是一种32位微处理器,其内部具有存储管理部件、浮点运算部件和高速缓存部件,还有指令预

13、取和流水线作业体系结构技术等。存储空间高达246 B= 64TB=65536GB。 80486的组成原理、内部体系结构和所具有的功能、性能,在微机领域中具有广泛的代表性,起到了承上启下的作用。8KBCache总线大小 控制奇偶校验地址驱动 写缓存数据总线 收发 总线 控制器成组控制高速缓存 控制预取部件32B代码队列分段、分页及存储器管理指令译码控制和保护部件控制ROMFPUEP寄存器组桶形位移器寄存器组ALU32位读32位AB32位DB32 位位移 总线24位20位物理地址微指令总线32位线性地址线32位数据线32位数据总线系统接口32位基地址线 2.2 80486 CPU原理结构及功能介绍

14、 2.2.1 原理结构及功能介绍 1、运算部分:包含有定点运算部分和浮点运算部分。进行定点运算时需要算术逻辑运算单元(ALU)、移位器和寄存器组配合协调工作;进行浮点运算时需要浮点运算单元(FPU)和浮点寄存器组共同配合来完成。 2、存储器管理部分是用来实现虚拟存储器管理的,它由分段部件和分页部件组成。 分段部件管理逻辑地址空间,并把逻辑地址转换为线性地址; 分页部件把线性地址转换成物理地址。 3、高速缓存器:为了提高计算机的运算速度,80486的内部集成了一个8K字节的高速缓冲存储器(Cache). Cache用来存放最近运行的程序所需要的指令代码和数据。 4、指令预取部件: 包含了两个16

15、字节的队列寄存器。指令预取部件与高速缓存之间有一条单向的128位宽的通道,因此,每次从高速缓存中最多可取16个字节的信息。 指令预取部件也有一条指向指令译码器的24位宽度的指令代码流通道。用来将预取指令传送给指令译码器。指令译码器对指令的操作码进行翻译,并把翻译后的信息通过指令总线送给控制部件。 5、在CPU中运算部分与高速缓存之间由双向的64位宽度的数据总线相连接,它们之间可以进行32位或64位的信息传输,而存储管理部分只取数据线中的32位数据进行操作。 6、控制部分:80486采用微程序设计,它的控制部分由控制与保护部件和控制ROM组成。控制部分根据指令译码器送来的信息产生微指令,并通过微

16、指令对运算部分、存储管理部分以及指令译码部分发出控制信号,控制各部分有序地工作。 7、总线接口部件:其功能是产生访问CPU以外的存储器和各种输入/输出接口所需的地址、数据和命令信息。 8、CPU与外部设备交换信息,是通过总线接口部分的数据总线收发器进行的。 在CPU内部有两组方向不同的32位数据线,当外部信息输入时,可通过一组数据线把信息送往高速缓存和指令预取队列;当向外部送出信息时,通过数据收发器中的写缓冲器进行的。这样,可以缓解高速运行的CPU与较低速度运行的存储器、输入/输出接口之间的不协调矛盾。 2.2.2 80486内部寄存器结构 80X86CPU中的寄存器组可分为4大类,即:-基本

17、寄存器;-系统级寄存器;-浮点寄存器;-调试测试寄存器。 应用程序只能访问基本结构寄存器和浮点寄存器;而系统程序可以访问所有的寄存器。80X86内部寄存器包括有:通用寄存器8位16位32位专用寄存器8086,8088,80286为16位80386,80486、Pentium为32位 一、 80486CPU中的基本结构寄存器 采用汇编语言编写程序时,均可以采用这些寄存器。1. 通用寄存器组共有8个32位寄存器。 EAX、 EBX、 ECX、 EDX ESP、EBP、EDI、 ESI 基本结构寄存器通用寄存器段寄存器专用寄存器 * 当使用16位寄存器时有: AX、 BX、 CX、 DX、 SP、

18、BP、DI、 SI 这些寄存器与8086通用寄存器的名称相同,作用相同,是32位寄存器的低16位。 这些寄存器既可以保存算术和逻辑运算的操作数,也可以保存地址运算中的操作数。注意:ESP不能用作基址寄存器。 * 当使用8位寄存器时有: AH、AL、 BH、 BL、CH、 CL、DH、DL 这里把16位寄存器分成了两个8位的寄存器。 高8位(高字节):AH、BH、DH、CH; 低8位(低字节);AL、 BL、 CL、 DL。 通用寄存器的名称、字长及功能如下图所示。 寄存器 名 称 32位寄存器16 位寄存器 8 位 寄存器 功 能 累加器 EAX AXAH 、AL运算、指令专用、保存数据基址寄

19、存器 EBX BXBH、BL保存数据、保存地址 计数器 ECX CXCH、CL保存数据、指令计数器数据寄存器 EDX DXDH、DL保存数据、乘除法专用 基址指针 EBP BP保存地址和16位栈地址 堆栈指针 ESP SP 保存栈顶地址 源变址 寄存器 ESI SI保存数据,串操作时保存源数据地址 目的变址 寄存器 EDI DI保存数据,串操作时保存目的数据地址 2、段寄存器 在设计程序时,一般把指令代码放在代码段,操作数据放在数据段存储器空间。 80486微机的段寄存器分为两部分: CS代码段寄存器; SS堆栈段寄存器 (1)、编程可见的6个16位段寄存器DSESFSGS4个数据段寄存器:(

20、选择符寄存器),它们可直接或间接地指出指令代码和数据所在的地址空间。 (2)、另有6个64位的段描述符高速缓冲寄存器和上面的编程可见的6个16位段寄存器相对应. 段描述符高速缓冲寄存器用来存放段的描述符信息(如段的32位基地址、20位界限和12位属性),描述符寄存器是编程不可见的,程序不能访问的。 在实地址方式或虚拟8086方式下,段描述符高速缓冲寄存器不起作用。 在保护方式下,系统采用描述符表来描述不同段的起始地址和长度,段长在14GB内 ,这时的段寄存器存放选择符,该选择符可以从描述符表中选择一个描述段起始地址和长度的描述符。采取这种技术可加快存储器物理地址的形成过程。 3、专用寄存器(1

21、)、 EIP/IP指令指针31 15 015 0EIP:IP: EIP/IP指令指针作用是永远指向下一条将要执行的指令所在内存中的偏移地址。这种偏移地址作为代码段(CS)基值的偏移量。当开始运行程序时,系统把EIP/IP清零,每取入一条指令,EIP/IP自动增加CPU所取指令字节数的偏移地址。 在实模式下, IP与CS组合后形成20位物理地址.如图所示。C SI P 指令指针可以由跳转指令或调用指令修改。 在保护模式下使用EIP。15 12 11 015 3 020位物理地址19 0 + (2)、标志寄存器(EFLAGS/FLAGS) 标志寄存器为32位,低16位为:FLAGS,与16位机的标

22、志寄存器同名、同作用。31 212019181716 1514 13 12 11109876543210 ID VIP VIF AC VM RF 0 NT IOPL O D I TSZ0A 0P 1C 8086/808880386/80486Pentium 标志寄存器用来指示微处理器的控制状态,运算状态等标志:* 运算状态标志:CF、PF、AF、ZF、 SF、 OF* 控制状态标志:IF、TF、DF、IOPL、 NT、 RF、VM、AC、 VIF、VIP、ID运算状态标志:CF进位标志:CF=1,加法有进位,否则为0CF=1,减法有借位,否则为0 PF奇偶标志:用于串行数据的传送检查是否 出错

23、.注意:循环移位指令也影响进位标志。 AF辅助进位标志: AF=1,作加、减法时,最低4位有进位或有 借位;否则,AF=0。 AF标志也用于BCD码算术运算。PF=1,AL的数据位中有偶数个1;PF=0,AL的数据位中有奇数个1。 ZF零标志: ZF=1,表示算术或逻辑运算的结果为0; ZF=0,表示算术或逻辑运算的结果不为0 SF符号标志:表示算术或逻辑运算后的结果符 号位。 当SF=1,表示结果符号位为1; 当SF=0,表示结果符号位为0; 对于带符号数: SF=1,表示负数, SF=0,表示正数。 OF溢出标志:在加减法运算中,看运算 结果有无溢出。 OF=1,表示溢出(超出数值表示范围

24、) OF=0,无溢出。 注意:OF主要用于带符号数运算,如果发生溢 出,这时结果值没有意义。 TF陷阱标志:TF=1时,将CPU设置成调试程序的单步方式,在这种方式下,每条指令执行后,CPU自动产生一个内部中断,使调试程序的人可以观察程序中每条指令的执行情况。 控制状态标志: IF中断控制标志:IF= 1,允许CPU响应外部INTR可屏蔽中断; IF= 0,禁止CPU响应外部INTR可屏蔽中断。 IF不影响外部非屏蔽中断或内部产生的中断 DF方向标志:用于控制串行操作指令中 变址的递增/递减。 DF=0时:SI/ESI或DI/EDI中的地址自动增量, DF=1时:SI/ESI,DI/EDI中的

25、地址自动减量, IOPL输入/输出特权标志:用来定义允许执行输入/输出指令的特权级的数据。特权级用两位表示: 03级,0级最高。 如果当前任务的特权级高于或等于IOPL规定的级别,则可执行该I/O指令,否则,发生保护异常中断,执行程序被挂起。 NT 嵌套任务标志: NT表示当前的任务是否嵌套在另一个任务 内,该标志控制中断返回指令的执行。 NT=1时,表示当前的任务有一个有效的链连接到前一个任务(被嵌套),则通过任务转换,执行IRET指令实现中断返回,返回到前一个任务; NT=0时,执行常规中断返回过程。 RF恢复标志:与调试寄存器一起使用。 RF=1,CPU响应“断点异常中断”,然后标志寄

26、存器压栈,再转入相应的断点处理程 序,此时,即使遇到断点或调试故障, 也不产生异常中断,忽略调试故障。RF=0,接受调试故障。 VM虚拟8086方式标志: VM=1,微处理器由保护模式切换到虚拟模式,在此模式下,80486CPU可以运行8086的系统程序和应用程序。 AC对准检查标志: AC=1, 进行字、双字或4字的对准检查。 若要访问的内存操作数未按边界对准,将产生异常中断。主要用 于和协处理器同步工作.所谓边界,CPU规定: *访问字操作数应从偶地址开始, *访问双字操作数应从4的整数倍地址开始, *访问4字操作数应从8的整数倍地址开始。 *不符合上述规定就是越界,产生异常中断17 ID

27、标识标志:指示Pentium 微处理器支持CPUID指令,该CPUID指令给系统提供有关该微处理器的各种信息。 VIF虚拟中断标志:该标志为虚拟方式下 中断位标志的拷贝,用于多任务环境 下,给操作系统提供中断的信息。 VIP虚拟中断暂挂标志:用于多任务环境 下,给操作系统提供中断暂挂信息。 80486CPU内部设有4个系统地址寄存器,用来在保护方式下管理4个系统表(表或段)地址。其格式如下:4、系统地址寄存器 线性基地址 界限 线性基地址 界限局部描述符寄存器(LDTR)任务状态寄存器(TR)TRLDTR 段描述符高速缓冲器(不可见)选择符寄存器47 16 15 0063015全局描述符表寄存

28、器(GDTR):中断描述符表寄存器(IDTR): (1) GDTR全局描述符表寄存器(48位),其中高32位用来存放全局描述符表GDT的32位 线性基地址,低16位存放界限值。 (3)LDTR局部描述符表寄存器,用来存放局部描述符表(LDT)的线性基地址、界限、描述符的属性和16位选择符。 (2) IDTR中断描述符表寄存器(48位),高32位用来存放中断描述符表IDT的线性基地址,低16位存放界限值。 (4) TR任务状态寄存器,用来存放当前正在执行任务的线性基地址、界限、描述符的属性和16位的选择符。TR与LDTR类似,只有16位的选择符可由程序访问,其他部分不可见。 段寄存器与系统地址寄

29、存器一起为操作系统完成内存管理。 5、控制寄存器 80X86内部有4个32位控制寄存器,用来存放全局性与任务无关的机器状态。如图示:313029181716 5 4 3 2 1 0PGCD NWAM WPNETETSEMMPPECR0页故障线性地址寄存器CR1 页目录基址寄存器 保留 PCD PWTCR2保留CR3 (1)、CR0用来存放系统控制标志或表示CPU的状态。其定义有5类: 保护控制位PE、PG,控制内存管理机制的操作。PE控制内存管理机制,又称保护方式允许位, PE=1,进入保护方式; PE=0 ,进入实地址方式;PG控制分页管理机制,又称允许分页位。 PG=1,使分页部件有效;

30、PG=0,禁止分页部件工作。 . 协处理器有MP, EM,TS, ET控制位,控制浮点处理器的操作。MP 监控协处理器位。 MP=1,表示80486系统中有协处器( 80286, 80386)在运行; MP=0, 表示运行80486程序。EM仿真协处理器位, EM=1,浮点指令由软件仿真协处理器; EM=0,由硬件控制浮点指令传送到协处理器 ET处理器扩展类型标志,用来指示系统 中协处理器的类型。 ET=1,表示配置有80387;否则,表示未配置 TS 任务切换位 TS=1,表示有任务切换(由CPU自动置“1”, 清除任务时,由切换标志指令CLTS将TS清“0” 在解释浮点算术运算指令时,对该

31、位进行测试。 NE 数值异常事故位,用来控制浮点运算中未被屏蔽的异常故障。 NE=1,允许报告浮点数值错;NE= 0,IGNNE输入有效,则不予以报告。另有 NE=0,且IGNNE输入无效时,数值错将会使处理器停止运行,并等待一次中断。 AM对准控制位。 AM 对准屏蔽位,与状态标志AC配合使用,控制对数据的对准校验。 AM=1,且AC=1时,对用户级(CPL=3)访问的存储单元进行对准校验,即边界检查,否则不校验。 WP 页的写保护控制位。 WP 写保护位,用来净化80486的页写保护机构,即保护用户级的那些页。 WP=1禁止管理级对用户级的页进行写操作;当WP=0,管理级可向用户级的页进行

32、写操作。 片内高速缓存控制位CD,NW。 CD 允许Cache位,用来控制是否使用片内 Cache。 CD=0,允许使用内部Cache,这时,可对 片内Cache存储器填充写入; CD=1,不能对Cache填充写入。如果彻底禁止Cache,可用专门的指令INVD或WBINVD对片内Cache刷新(即清0)。 。 NW 不透明写位,也称为不是写贯穿,用来控制Cache操作。 NW= 0: 所有选中Cache的写操作将按贯穿方式 同时写入Cache和写入主存;NW=1: (且CD=1)只写入Cache存储器,而不写入主存。(2)CR1 未用。(3)CR2 页故障线性地址寄存器,用于发生页异常时,报

33、告出错信息,保存最后出现页故障的32位线性地址。只有当CR0中的PG=1时,CR2才有意义. (4)CR3页目录基址寄存器,用于保存页目录表的起始线性地址。 其中高20位存放页目录表的物理基地址。在低12位中有2位为标志位,是与高速缓存有关的控制位,它们用来确定以页为单位进行高速缓存的有效性。其余10位未用。标志位作用如下: PCD 禁止页高速缓冲位:PCD=1,不对页进行高速缓冲操作。在不分页情 况下的总线周期,该信号由PCD引脚输 出,控制外部二级Cache的高速缓冲操作 PWT写贯穿位。在80486内部Cache中使用 的是“写贯穿”方式, 而外部级Cache有的使用“写贯穿”方式,有的

34、既可使用“写贯穿”方式又可使用“写回”方式.PWT=1,使片外二级Cache采用“写贯穿”方 式,否则采用“写回”方式。 所谓“写贯穿”是向Cache写入数据的同时,也写入到主存中。“写回”是只有当Cache中的某一存储块被刷新时,才把这一存储块写回到主存中去。 六、测试寄存器 在80X86CPU内部有5个测试寄存器:TR3TR7,各32位。 TR3TR5用于片内Cache测试(测试数据、状态、控制)。 TR6TR7用来控制分页部件的测试操作(测试控制、状态)。31 Cache 测试控制 031 Cache 测试数据 031 Cache 测试状态 031 TLB 测试控制 031 TLB 测试

35、状态 0TR3TR4TR5TR6TR7 七、调试寄存器 在80X86CPU内部有8个32位调试寄存器,表示为DR0DR7。如下图所示: 其中DR0DR3用作线性断点地址寄存器,可保存4个断点地址。 线性断点地址 线性断点地址 线性断点地址 线性断点地址 INTEL公司保留 INTEL公司保留 断点状态 断点控制31 0DR0DR1DR2DR3DR4DR5DR6DR7 DR6用作断点状态寄存器,用来设置若干个状态标志。 其中低4位分别表示4个断点处的调试状态。另有3位: BT是任务转换引起的调试陷阱; BS是单步异常引起的调试陷阱; BD是试图访问调试寄存器引起的调试陷阱。 DR7 是断点控制寄

36、存器,用来设置控制标志、条件、断点地址的有效范围,以及是否进入异常中断等。DR4、DR5保留。 32位CPU是由早期的16位CPU发展而来的,为了保持与16位机指令系统的兼容性,又能充分发挥32位机的优势,32位CPU采用了多种工作模式的方法来解决这一矛盾。80X86系列CPU具有3种工作模式: 1、实地址方式(Real Address Mode) 2、保护方式(Protected Mode) 3、虚拟8086方式(Virtual 8086 Mode) 2.3 CPU的工作方式 8086、8088CPU工作在实模式下; 80286以上CPU可工作于实模式或保护模式。 在实模式下,80486的操

37、作数长度为16位,可以运行全部8086/8088指令。 80486除保护方式指令外,其余指令都可在实模式下运行。主要区别是80486能处理32位数据。 2.3.1、实地址方式实模式 在保护方式下,CPU可访问232字节(4GB)的物理存储空间,最大段长为232字节, 而且可以实施保护功能,并引入了虚拟存储器概念。 实模式下一个段的长度为164K字节内 。物理地址=段基地址10H+偏移地址段寄存器直接存放某一段的段基地址,编写程序时,程序给出指令或数据的逻辑地址,包括段基地址(16位)和相对于段基地址的段内偏移量(16位),又称偏移地址。在指令寻址时,将逻辑地址转换为存储器单元的物理地址。20位

38、地址线对应的存储器物理地址为1MB。地址转换的规则为:用图形表示如下所示:(段寄存器 )= 段基地址偏移地址15 12 11 0 +20位物理地址 19 015 0实模式下存储器的物理地址生成示意图 例:编程定义:CS=1000H,DS=2000H, SS=3000H,ES=4000H 4个段长均为64KB,而偏移地址为00000FFFFH,4个段在内存的分布如下:代码段 堆栈段数据段附加段CS=1000H10000H1FFFFHDS=2000H20000H2FFFFHSS=3000H30000H3FFFFHES=4000H40000H4FFFFH64K64K64K64K 存放程序代码的存储器

39、空间,由段寄存器CS指向段基地址,而段内偏移地址在IP/EIP中。 在寻址其它段时,段基地址在 DS,ES ,SS ,FS或GS中,而段内偏移地址由指令指定寻址方式,或者由指令直接定义,或存放在通用寄存器中,也可在存储器中。 这种分段寻址方式,允许程序在存储空间内重定位,也允许在实模式下编写的程序可在保护模式下运行。 80386以上CPU允许6种存储器分段,段寄存器为:CS,DS,SS,ES,FS,GS.如果一个段长小于64KB,重定位方式允许其它段复盖前一个段未使用的部分。 在实模式下,808680286CPU允许4种存储器分段,段寄存器为:CS,DS,SS,ES。在这种寻址方式下,无需改变

40、任何偏移地址,只要修改段地址,就可将整个程序移到内存的任何地方。实现了程序重定位。 虚拟8086方式是一种既能有效利用保护功能,又能执行8086指令代码的工作方式。CPU的工作过程与保护方式下的工作过程相同,程序指定的逻辑地址与8086有相同的解释,寻址的地址空间为1MB,段长为64KB。20位物理地址的形成与实模式一样。但这是一种虚拟8086方式,不完全等同于8086。 2.3.2 虚拟8086方式 当标志寄存器中的VM位置1时,CPU进入虚拟8086方式。 在虚拟8086方式下,有4GB内存空间可以利用,采用分页内存管理机制,支持64TB的虚拟存储地址空间,其代码和数据段具有保护机制,支持

41、任务之间以及特权级的数据和程序保护,允许多任务运行。 80486可以把每个虚拟8086任务作为与其它任务具有同等地位的任务,通过这种工作方式,可以运行8086环境下的程序,而且,在运行8086程序时,可以充分发挥32位CPU的能力和充分利用系统资源。32位CPU支持保护工作模式,在该方式下,32位地址总线支持高达4GB的物理地址空间. 存储器分段分页管理机制不仅为存储器保护和共享提供了硬件支持,而且,为实现虚拟存储器提供了硬件支持。支持多任务,实现了快速的任务切换和任务保护。支持特权级与特权保护,实现了资源共享、数据安全和保密。 2.3.3 保护方式 1、虚拟存储地址空间 在保护方式下,支持虚

42、拟存储地址空间,虚拟空间在物理上是由外存与内存结合提供的,最大为: 246=64TB=65536GB。 2、保护模式物理地址形成 保护模式下,段的最大长度可达4GB,段寄存器不能直接存放段基址,而是存放指示段基址的选择符,间接指示段基址。 选择符用来选择某个描述符表中的描述符,每个描述符指出存储器段的位置、长度和访问权限等。 段描述符中32位段基址+32位的偏移量=线性地址。然后,再由分段部件传送给分页部件形成物理地址。 分段部件作用:将逻辑地址转换成线性地址。 在描述符中段基址为32位,因此,存储单元的物理地址计算规则不同于实地址方式,在这里,可直接采用段基址与偏移地址相加产生32位物理地址

43、。 段描述符中包括:段基址、界限值、段特权级 以及所允许访问的类型信息分段部件分页部件存储器逻辑地址32位线性地址 32位物理地址 保护模式物理 地址形成图+偏移地址31 0描述符 描述符表(段基址)选择符15 031 0 在保护方式下,支持特权级与特权保护。 特权级与特权保护是为了支持多用户、多任务操作系统,使系统程序和用户的任务程序之间、各任务程序之间互不干扰而采取的保护措施。32位CPU提供了一个4级特权管理系统,也就是4级保护系统。为了使程序和数据安全可靠,还采取了页面保护措施。 3、 特权级与特权保护特权级用PL表示,分为0,1,2、3级。0级特权最高,一般赋给操作系统的核心程序1级

44、赋给来自操作系统的服务程序;2级赋给操作系统的扩展程序;3级赋给用户程序,级别最低。 在实施管理中使用了3种形式的特权管理: 当前任务特权(CPL)、选择符特权(RPL)和描述符特权(DPL)。 并且规定某一特权级段中的数据只能由同级或高特权级中运行的程序使用; 某一特权级的代码段或过程只能由同级或低特权级中运行的程序调用。 任务执行时当前特权级一般不能改变,如果必须改变,只能通过代码段的门描述符的控制转换才能实现。 对于代码段转移的规定为:新代码的特权级必须更高。即控制转移的条件是: CPL=DPL,CPLRPL选择符特权级。 如果CPL=DPL,则属于同一级的转移; 如果CPL高于DPL特

45、权级,则程序执行在CPL级。 任务的特权级从CPL到更高特权级的改变是由调用门的间接控制转移来实现的。调用门的内容包括控制转移入口点的虚拟地址。 对于输入/输出有两个特权级: 第一个是I/O驱动程序,属于系统程序,规定特权级为0; 第二个是IOPL,用于限制I/O指令的执行,如:IN,OUT,CLI和STI只能在大于和等于规定的特权级上执行。2.3.4 3种工作方式的状态转换 80486的三种工作方式,即实地址方式、保护方式和虚拟8086方式的状态转换。 实地址方式保护方式虚拟8086方式CPU复位CR0中PE位=1CR0中PE位=0执行IRETD指令或进行任务转换执行中断采用实地址方式当微处

46、理器复位时,进入实地址方式。将CR0中PE位复位,80486由实地址方式转移到保护方式。在保护方式下,执行IRETD指令或进行任务转换,就由保护方式转移到虚拟8086方式。利用中断操作,微处理器就可以由虚拟8086方式返回到保护方式。采用实地址方式可使80386,80486返回到8086状态。相当于一个功能稍强速度更快的16位机。而采用保护方式可以充分能的环境中,用32位机的代码去模拟运行16位机的程序。 Pentium微处理器除了上述的3种工作方式之外,增加了一种系统管理方式(SMM)。 这种方式可使系统设计人员实现高级管理功能,比如对电源实施管理。 对操作系统和正在运行的程序实施管理,提供

47、透明的安全性。 2.3.5 系统管理方式(SMM) SMM是Pentium的一项主要特征,它由机器内部的硬件(装有系统程序代码的ROM)来控制。 SMM主要是为系统管理而设置,在硬件的控制下可从任何一种工作方式进入SMM方式, 工作完成后再返回原来的方式。如下图所示。实地址方式保护地址方式模拟8086方式 系统管理方式Pentium 工作方式转换图 SMIRSMSMI RSMRSMSMIPE=1PE=0复位复位 为提高运行速度和性能指标,CPU采用了流水线技术作业。在80486CPU中设有:8KB内部高速缓存器、32B预取指令队列、指令译码器、控制器、控制寄存器和执行部件, 80486CPU使

48、用5个步骤的流水线技术,即: 指令预取PF、译码D1、译码D2、执行EX和结果写回WB,其过程如图所示。 2.4 指令流水线操作 PF D1 D2 EX WB时钟 一般来说,预取指令部件的操作与流水线其他步骤是相互独立的。在实际使用中,32B的队列分成两个16B的队列使用。其中只要有一个队列为空,预取部件就从高速缓存中取16B的代码填入队列中,这就保证了取指令与执行指令的并行操作。 一、指令预取PF 预取指令部件一次可从内部高速缓存中取16B的指令代码,送预取指令队列中等候执行。在16个字节中平均有5条指令,这样就满足了译码部件的需要。 译码操作分为D1和D2两个阶段。D1是第1阶段,从指令代码中分解出操作码进行译码,找出第一条微指令代码的入口地址送控制ROM。如果指令中带有操作数,同时找出计算地址的代码,送分段部件。 对于多字节指令,一次最多可以处理3个字节。根据80486的体系结构,任何一条指令的长度都可以通过前3个字节(包括指令前缀)确定 二、D1 三、D2 对于带前缀的指令,需要增加一个时钟周期对前缀译码,这样D1阶

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论