《硬件第3章2009》由会员分享,可在线阅读,更多相关《硬件第3章2009(51页珍藏版)》请在金锄头文库上搜索。
1、第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
2、位的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产品,形成Pen
3、tium系列 如高能奔腾(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接口 协处理器,逻辑地址,操作数和结果,指 令 字 节,指令预取队列,预取器/段界限校验器,线性地址
4、,物理地址,段描述符高速缓冲存储器,页描述符高速缓冲存储器,段界限和属性校验器,控制和属性校验器,指令预取部件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芯片内,下面分
5、别介绍,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个字节 指令预取队列存放从存储器取出的未经译码的指令。 预取队列不满或发现是转移指令
6、时,就向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个乘
7、法或除法器 桶形移位寄存器能实现数据移位、位操作,用于乘法及其他操作 桶形移位器与ALU并行操作,可加速乘法、除法、位、移位操作,13,5.分段部件和分页部件,分段部件SU(Segment Unit) 分页部件PU(Paging Unit) 两者构成存储器管理部件MMU(Memory Management Unit) 用于管理存储器,下面分别介绍,14,(1)分段部件,分段是将存储空间分成若干个存储区域(或地址空间) 每个存储区域称为一个段,每个段独立、被保护 分段提供隔离代码、数据、堆栈的机制,每个程序可以使用若干个段 分段可以隔离任务,使多个程序(或任务)在同一个CPU上运行,互不干扰,1
8、5,(2)分页部件,分页是另一种存储器管理模式 可用磁盘模拟内存,即构造虚拟存储系统,当运行程序所需内存容量大于实际内存容量时,也可运行。 程序运行机制是,虚拟内存(如硬盘)存放暂时不执行的程序和数据,执行时,再装入实际内存 通过分页实现基于页请求的虚拟存储系统 分页也能用于隔离多个任务,16,6.浮点运算部件FPU (Floating Point Unit),用于完成浮点数运算、二进制整数运算、十进制数串运算等 80486以后把FPU集成到CPU芯片内,使引线缩短,加快了运算速度 FPU内有浮点专用的加法器、乘法器和除法器,还有其他寄存器 如Pentium的FPU包括8个80位寄存器、3个1
9、6位寄存器和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千兆字节)
10、它的低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(Nes
11、ted 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) 用于设
12、置处理器为虚拟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) 用于检查要访问的地址是否对
13、齐。要求访问字数据时是偶数地址,访问双字数据时是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) 与虚拟中断标志VI
14、F联合使用。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
15、、80486有4个控制寄存器CR0CR3 Pentium有5个控制寄存器(CR0CR4) CR1留作备用,供今后开发新处理器使用。 控制寄存器用于保存机器的各种全局性状态信息。 大部分系统阻止应用程序修改控制寄存器,允许读取。,27,6. 系统地址段寄存器(程序不可见),只用于保护模式,用于存放内存中描述符表(特殊段)的地址信息 全局描述符表寄存器GDTR(Global Descriptor Table Register) 中断描述符表寄存器LDTR(Interrupt Descriptor Table Register) 局部描述符表寄存器IDTR(Local Descriptor Tabl
16、e 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