资源预览内容
第1页 / 共51页
第2页 / 共51页
第3页 / 共51页
第4页 / 共51页
第5页 / 共51页
第6页 / 共51页
第7页 / 共51页
第8页 / 共51页
第9页 / 共51页
第10页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第3章 80X86微处理器,2,主要内容,3.1 80X86微处理器概述 3.2 80X86微处理器系统组成 3.3 工作模式与地址变换 3.4 Pentium微处理器简介 3.5 多核处理器简介,3,3.1 80X86微处理器概述,80X86是8086/8088之后微处理器的总称 包括80286、80386、80486、Pentium系列等 是8086/8088的延续和扩展,4,1. 80X86微处理器发展概况,(1)16位结构的80286微处理器 从此,机器有多种工作模式。有兼容8086/8088的模式,有发挥机器新功能的工作模式。 首次应用虚拟存储器概念,即利用外存模拟内存。 (2)32位的80386微处理器 在此之后,不断推出新型号的32位微处理器。,接下页,5,1. 80X86微处理器发展概况,(3)80486微处理器 将80386微处理器、80387数字协处理器(80387浮点协处理器)、高速缓冲存储器(Cache)集成在一块芯片上的产品,是一种完整的32位微处理器。 采用8KB统一的代码和数据高速缓冲存储器(Cache),接下页,6,1. 80X86微处理器发展概况,(4)Pentium(奔腾)系列微处理器 Pentium含义5,即80586。具有高性能的浮点运算部件 分开数据Cache(高速缓冲存储器)、代码Cache 不断推出新型号的Pentium产品,形成Pentium系列 如高能奔腾(Pentium Pro)、多能奔腾(Pentium MMX)、2代奔腾Pentium 、3代奔腾(Pentium )、4代奔腾(Pentium )等,7,3.2 80X86微处理器系统组成,指令,指令译码部件IDU,指令译码器,译码指令队列,执行部件EU,算术逻辑单元ALU,64位桶形移位寄存器,控制和保护测试机构,译好码的指令,8个32位通用寄存器,分段部件SU,分页部件PU,总线接口部件BIU,总线请求判优,数据和地址驱动,控制信号驱动,协处理器控制,存储器 I/O接口 协处理器,逻辑地址,操作数和结果,指 令 字 节,指令预取队列,预取器/段界限校验器,线性地址,物理地址,段描述符高速缓冲存储器,页描述符高速缓冲存储器,段界限和属性校验器,控制和属性校验器,指令预取部件IPU,接下页,8,3.2.1 内部构件,接口部件BIU (Bus Interface Unit) 指令预取部件IPU (Instruction Prefetch Unit) 指令译码部件IDU (Instruction Decode Unit) 执行部件EU (Execution Unit) 分段部件SU (Segment Unit) 分页部件PU (Paging Unit),80486以后微处理器把浮点部件FPU(Floating Point Unit)也集成到CPU芯片内,下面分别介绍,9,1.总线接口部件BIU (Bus Interface Unit),与8086/8088中的BIU类似 负责微处理器与存储器、I/O接口之间传送数据 由它产生访问I/O端口所需的地址、数据和命令信号 没有其它总线请求时,BIU会自动取出下一条指令,送到指令预取队列中,10,2.指令预取部件IPU (Instruction Prefetch Unit),负责从存储器(高速缓存Cache或内存)中取出指令,按顺序放到指令预取队列中 8086指令预取队列长度6个字节,80386是16个字节,80486是32个字节 指令预取队列存放从存储器取出的未经译码的指令。 预取队列不满或发现是转移指令时,就向BIU发取指令请求 段预取界限校验器用于检验地址是否超出段界限。,11,3.指令译码部件IDU (Instruction Decode Unit),负责从指令预取队列取出指令,并进行译码 将译码后的可执行指令放入已译码指令队列中,等待执行部件处理 译码指令队列可容纳多条指令。如80386可容纳3条 一旦译码指令队列有空闲,IDU就从指令预取队列中取出后续指令进行译码,并填充译码指令队列,12,4.执行部件EU (Execution Unit),负责执行指令,与8086/8088中的EU类似 该部件包括1个32位算术运算单元ALU、8个32位通用寄存器、1个64位圆桶形移位寄存器、1个乘法或除法器 桶形移位寄存器能实现数据移位、位操作,用于乘法及其他操作 桶形移位器与ALU并行操作,可加速乘法、除法、位、移位操作,13,5.分段部件和分页部件,分段部件SU(Segment Unit) 分页部件PU(Paging Unit) 两者构成存储器管理部件MMU(Memory Management Unit) 用于管理存储器,下面分别介绍,14,(1)分段部件,分段是将存储空间分成若干个存储区域(或地址空间) 每个存储区域称为一个段,每个段独立、被保护 分段提供隔离代码、数据、堆栈的机制,每个程序可以使用若干个段 分段可以隔离任务,使多个程序(或任务)在同一个CPU上运行,互不干扰,15,(2)分页部件,分页是另一种存储器管理模式 可用磁盘模拟内存,即构造虚拟存储系统,当运行程序所需内存容量大于实际内存容量时,也可运行。 程序运行机制是,虚拟内存(如硬盘)存放暂时不执行的程序和数据,执行时,再装入实际内存 通过分页实现基于页请求的虚拟存储系统 分页也能用于隔离多个任务,16,6.浮点运算部件FPU (Floating Point Unit),用于完成浮点数运算、二进制整数运算、十进制数串运算等 80486以后把FPU集成到CPU芯片内,使引线缩短,加快了运算速度 FPU内有浮点专用的加法器、乘法器和除法器,还有其他寄存器 如Pentium的FPU包括8个80位寄存器、3个16位寄存器和5个错误指针寄存器,17,3.2.2 内部寄存器,80386、80486、Pentium微处理器内部寄存器分为8类 通用寄存器 指令指针寄存器 标志寄存器 段寄存器 系统地址寄存器 控制寄存器 调试寄存器 测试寄存器,下面分别介绍,18,1. 8个通用寄存器,EAX (Extended AX),低16位可作独立寄存器 低16位分2个8位寄存器,19,2.指令指针寄存器EIP (Extended Instruction Pointer),从8086/8088的IP扩展而来 用于存放下一条待取指令在内存的偏移地址(偏移量) 工作在32位下的EIP,寻址范围4GB(232,4千兆字节) 它的低16位称为IP,用于兼容16位CPU,寻址范围为64KB(216) 当一个程序开始运行时,系统把EIP清零 每取入一条指令,EPI自动增加(EPI取入的字节数目EPI),20,3.标志寄存器EFLAGS (Extended Flags),是一个32位标志寄存器,低16位称为FLAGS,下面具体介绍,21,新增标志位介绍(1),输入/输出特权级别标志IOPL(Input Output Privilege Level) 用于指定输入/输出操作的特权级别。有03四个特权级别,数字越小,级别越高。作用是控制各任务的输入/输出操作,避免输入/输出冲突,进行输入/输出保护。 嵌套任务标志NT(Nested Task) 指示当前任务是否嵌套在另一个任务之中。NT=1时表示嵌套,22,新增标志位介绍(2),保留,VM,RF,NT,IOPL,OF,DF,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,IF,TF,SF,ZF,AF,PF,CF,31 22 21 20 19 18,ID VIP VIF AC,恢复标志RF(Resume Flag) 用于控制在Debug调试模式中如何响应异常。RF=1时遇到断点或调试故障时不产生异常中断。RF=0时遇到调试故障时产生异常中断。每执行完一条指令,RF自动置0。 虚拟模式标志VM(Virtual Mode) 用于设置处理器为虚拟8086模式。当VM=0,处理器工作于保护模式,它是机器的本机模式,能够真正发挥机器的所有特性和作用。设置VM=1,处理器可从保护模式切换到模拟8086模式。要使VM1,只能在保护模式下通过执行任务返回指令IRET或任务切换实现。,23,新增标志位介绍(3),保留,VM,RF,NT,IOPL,OF,DF,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,IF,TF,SF,ZF,AF,PF,CF,31 22 21 20 19 18,ID VIP VIF AC,对准(对齐)检查标志AC(Alignment Check) 用于检查要访问的地址是否对齐。要求访问字数据时是偶数地址,访问双字数据时是4的倍数地址,访问8字节数据时是8的倍数地址。 虚拟中断标志VIF(Virtual Interrupt) 当处理器处于虚拟模式时,该标志起到中断标志IF的作用(即是IF标志的虚拟映像)。,24,新增标志位介绍(4),保留,VM,RF,NT,IOPL,OF,DF,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,IF,TF,SF,ZF,AF,PF,CF,31 22 21 20 19 18,ID VIP VIF AC,虚拟中断挂起标志VIP(Virtual Interrupt Pending) 与虚拟中断标志VIF联合使用。VIP1时表示一个中断被挂起(待执行)。VIP0表示没有挂起的中断。处理器读取该位,但不修改它,由软件设定该标志。 识别标志ID(Identification) 表示CPU是否支持CPUID指令。该指令用于获得CPU类型、型号、制造商信息、商标信息、序列号和缓存等一系列CPU信息。,25,4.段寄存器(Segment Register),CS、DS、ES、SS、FS、GS,新增FS、GS,作附加数据段寄存器使用,用于扩大数据存储区域 每个段寄存器对应一个64位(隐含)段描述符寄存器 段寄存器也称段选择符或段选择子,26,5.控制寄存器(Control Register),80386、80486有4个控制寄存器CR0CR3 Pentium有5个控制寄存器(CR0CR4) CR1留作备用,供今后开发新处理器使用。 控制寄存器用于保存机器的各种全局性状态信息。 大部分系统阻止应用程序修改控制寄存器,允许读取。,27,6. 系统地址段寄存器(程序不可见),只用于保护模式,用于存放内存中描述符表(特殊段)的地址信息 全局描述符表寄存器GDTR(Global Descriptor Table Register) 中断描述符表寄存器LDTR(Interrupt Descriptor Table Register) 局部描述符表寄存器IDTR(Local Descriptor Table Register) 任务寄存器TR(Task Register) 以上寄存器仅供系统使用,程序不能直接访问系统地址段寄存器,下面具体介绍,28,段描述符和段描述符表,保护模式下:一个任务可以使用内存中的多个段 段参数包括:段基地址、段长度、段类型(如代码段)、权限等 段描述符:段的各项参数,每段有1个描述符,占用8B 段描述符表:内存中存放段描述符的线性表,下面介绍描述符表寄存器,内存段描述符表,8B描述符,8B描述符,8B描述符,29,(1)全局描述符表寄存器GDTR (程序不可见),GDTR(Global Descriptor Table Register): 存放全局描述符表的基地址、长度 GDT:全局描述符表(Global Descriptor Table) 用于存储全局描述符(每个任务都可访问的描述符) 整个系统只有一个GDT 通过GDT可以共享各任务都用的段 切换任务时并不切换G
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号