第2章16位和32位微处理器引言:微处理器(CPU)的性能指标:1.字长CPU能够同时处理的数据位数,也称为数据宽度。能够衡量CPU计算能力和集成度。Intel系列8086/8088/8028616位字长80386/80486/Pentium32位字长Itanium64位字长2.主频即CPU的时钟频率。CPU的运算速度的决定要素之一。8086/10MHZ80286/20MHZPentium/150MHZPentiumIV/3.06GHZ时间系列字长集成度主频平均执行时间1972800883500200K20us197680858100004M1~2us1978808616200004~8M0.5us1982802861613.4万6MHz逐步提高到20MHz0.2us1985803863227.5万12.5M,后提高到20M,25M,33M0.1us19898048632120万25MHz逐步提高到33MHz、50MHz1993Pentium32310万60MHZ和66MHZ,后提高到200MHZ2000PentiumIV324200万2.4G2.116位微处理器80862.1.18086的编程结构8086:Intel系列的16位微处理器,16条数据线、20条地址线,可寻址地址范围220=1MB,8086工作时,只要一个5V电源和一个时钟,时钟频率为5MHz。8088:内部与8086兼容,也是一个16位微处理器,只是外部数据总线为8位,所以称为准16位微处理器。8088有20根地址线,可寻址的地址空间达220即1M字节。AHALBHBLCHCLDHDLSPBPDISI通用寄存器运算寄存器ALU标志执行部分控制电路CSDSSSESIP内部暂存器I/O控制电路地址加法器20位16位8位123456指令队列缓冲器外部总线执行部件总线接口部件8086CPU编程结构图16位2.1.18086的编程结构在编程结构图中,从功能上划分,8086分为两大部分:即总线接口部件BIU(BusInterfaceUnit)执行部件EU(ExecutionUnit)1.BIU总线接口部件功能:负责与存储器、I/O端口传送数据具体:(1)从内存取指令送到指令队列(2)CPU执行指令时,BIU配合执行部件从指定内存单元或外设端口中取数据,将数据传送给执行部件。(3)或者,BIU配合执行部件把操作结果传送到指定的内存单元或外设端口中。1.BIU总线接口部件组成:①4个16位的段地址寄存器CS(CodeSegment)DS(DataSegment)ES(ExtraSegment)SS(StackSegment)②16位的指令指针寄存器IP(InstructionPointer)③20位的地址加法器④6字节的指令队列缓冲区两点说明:1.BIU总线接口部件说明:(1)指令队列缓冲器:在执行指令的同时,将取下一条指令或几条指令,并放入指令队列缓冲器中。CPU执行完一条指令后,可以立即执行下一条指令(流水线技术)。提高CPU效率。(2)地址加法器:产生20位地址。CPU内无论是段地址寄存器还是偏移量都是16位的,通过地址加法器产生20位地址。例:一条指令的物理地址是根据代码段寄存器CS和指令指针寄存器IP的内容得到的。具体计算时,将CS的内容左移4位,然后与IP的内容相加。2.1.18086的编程结构2.执行部件功能:负责指令的执行详细:执行的指令从BIU的指令队列缓冲器中取得,执行指令的结果或执行指令所需要的数据,都由EU向BIU发出请求,再由BIU对存储器或I/O端口进行存取。2.执行部件组成:①4个通用寄存器,即AX,BX,CX,DX四个通用寄存器都是16位或作两个8位来使用。如AX分成两个8位寄存器AH和AL使用。AX也称为累加器,指令系统设计的指令有:乘法指令(按字节或字)中AX用作乘数、乘积除法指令(按字节或字)中AX用作被除数、商、余数(按字节时)输入输出指令(IN/OUT)标志传送指令LAHF/SAHF等2.执行部件②4个专用寄存器,即基数指针寄存器BP(BasePointer)堆栈指针寄存器SP(StackPointer)源变址寄存器SI(SourceIndex)目的变址寄存器DI(DestinationIndex)③算术逻辑部件ALU(ArithmeticLogicUnit)④标志寄存器BIU和EU两者的关系(6)标志寄存器16位寄存器,其中有7位未用。【注-1】D15D0OFDFIFTFSFZFAFPFCF进借位标志奇偶标志半进借位标志零标志符号标志单步中断中断允许方向标志溢出标志1-有进、借位0-无进、借位1-低8位有偶数个10-低8位有奇数个11-低4位向高4位有进、借位0-低4位向高4位无进、借位1-结果为00-结果不为0D7D8④标志寄存器根据功能,标志可以分为两类:状态标志和控制标志状态标志:表示前面的操作执行后,ALU所处的状态,这种状态像某种先决条件一样影响后面的操作。控制标志:表示对某一种特定的功能起控制作用。指令系统中有专门的指令用于控制标志的设置和清除。状态标志有6个,即SF、ZF、AF、PF、CF和OF①符号标志SF(SignFlag)和运算结果的最高位相同。表示前面运算结果的正负。②零标志ZF(ZeroFlag)ZF=1,表示当前的运算结果为0③奇偶标志PF(ParityFlag)PF=1,表示运算结果的低8位中所含1的个数为偶数。④标志寄存器④进位标志CF(CarryFlag)CF=1,当执行加法运算使最高位产生进位或执行减法运算最高位产生借位⑤辅助进位标志AF(AuxiliaryCarryFlag)AF=1,当执行加法运算时,如果第3位往第4位有进位或执行减法运算第3位往第4位有借位。辅助进位标志一般在BCD码运算中作为是否进行十进制调制的判断依据。⑥溢出标志OF(OverflowFlag)当运算过程中产生溢出时,OF=1。对有符号数来说:字节运算的范围-128~+127字运算的范围-32768~+32767结果超出范围称为溢出。如10000111+11110101④标志寄存器控制标志有3个,即DF、IF、TF①方向标志DF(DirectionFlag)控制串操作指令用的标志。DF=0,则串操作过程中地址会不断增值;(CLD指令)DF=1,则串操作过程中地址会不断减值;(STD指令)②中断允许标志IF(InterruptEnableFlag)控制可屏蔽中断的标志。IF=0,则CPU不能对可屏蔽中断请求作出响应(CLI指令)IF=1,则CPU可以接受可屏蔽中断的请求(STI指令)③跟踪标志TF(trapFlag)也称单步标志TF=1,则CPU按跟踪方式执行指令。TF(TrapFlag)跟踪(陷阱)标志它是为调试程序的方便而设置的。若TF=1,则CPU处于单步执行指令工作方式。每执行一条指令就自动产生一次类型1的内部中断。IBMPC系统中,用系统调试程序DEBUG时,T命令就是利用这种中断,服务子程序的功能是显示所有寄存器的当前值和将要执行的下一条指令。返回D15D0OFDFIFTFSFZFAFPFCFD7D8若TF=0正常执行程序④标志寄存器举例:0101010000111001+01000111011010103.8086的总线周期的概念为了取得指令或传送数据,就需要CPU的总线接口部件执行一个总线周期。总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间。在8086/8088中,一个最基本的总线周期由4个时钟周期组成,将4个时钟周期称为4个状态。T1状态、T2状态、T3状态和T4状态。时钟周期是CPU的基本时间计量单位,由计算机主频决定。CPU在4个状态中的基本作用•①在T1状态,CPU往多路复用总线上发送地址信息,以选中所要寻址的存储单元或外设端口的地址。•②在T2状态,CPU从总线上撤消地址,并使总线的低16位浮置成高阻状态,为传送数据做准备。总线的最高4位用来输出本总线周期的状态信息。用来表示中断允许标志、当前正在使用的段寄存器名等。•③在T3状态,多路总线的高4位继续提供状态信息,而其低16位(对8088CPU则为低8位)上将出现由CPU写出的数据或者CPU从存储器或端口读入的数据。•④在T4状态,总线周期结束。返回•④在有些情况下,由于外设或存储器的速度较慢,不能及时地配合CPU传送数据。这时,外设或存储器就会通过“READY”的信号线在T3状态启动之前向CPU发一个“数据未准备好信号”,•CPU会在T3之后自动插入1个或多个附加的时钟周期TW,•Tw称为等待状态,在Tw状态,总线上的信息和T3状态的信息一样。•只有在指定的存储器或外设已经完成数据传送时,它们又通过“READY”的信号线向CPU发出一个“准备好”信号,之后CPU才会自动脱离TW状态而进入T4状态。•⑤在T4状态,总线周期结束。2.1.28086的引脚信号和工作模式1.最小模式和最大模式的概念根据所连的存储器和外设规模的不同,使它们可以在两种模式下工作:(1)最小模式:在系统中只有一8086/8088CPU。(2)最大模式:有两个或两个以上的CPU,一个为主处理器8086/8088,另一个为协处理器8087/8089。数值运算协处理器8087,输入输出协处理器8089。2.8086/8088的引脚信号和功能如图所示,为8086CPU和8088CPU的引脚信号图。共有40条引脚线,这些引脚线用来输出或接收各种信号:地址线,数据线,控制线和状态线,电源线和定时线。由于8088微处理器是一种准16位机。其内部结构基本上与8086相同,其信号也与8086基本相同,只是有一些引脚的功能有所不同.在这里,我们将以8086为例,具体介绍一下最小模式下和最大模式下各位引脚功能,如出现功能不同的引脚再具体讲解。DIP双列直插式封装QFP塑料方型扁平式封装支持LGA封装的主板配套CPU扣架Pentium43.2GHzLGA775栅格阵列封装1、地址/数据总线AD15-AD0:地址/数据复用引脚,双向,三态。•(8086/8088)AD15-AD0:16位地址总线A15-A0,输出访问存储器或I/O的地址信息。•(8086)D15-D0:16位数据总线D15-D0,与存储器和I/O设备交换数据信息。•(8088)D7-D0:8位数据总线D7-D0,与存储器和I/O设备交换数据信息。高位地址线不做复用,只用来输出地址,•地址/数据总线复用,分时工作。•AD0信号常作为低8位数据的选通信号A19/S6-A16/S3:分时工作,在总线周期的T1状态:输出地址的高4位信息;T2、T3、Tw、T4状态:输出状态信息。A19-A16:输出访问存储器的20位地址的高4位地址A19-A16。S6-S3:输出CPU的工作状态。S6:指示8086/8088当前是否与总线相连,S6=0,表示8086/8088当前与总线相连。S5:表明中断允许标志当前的设置。S5=0,表示CPU中断是关闭的,禁止一切可屏蔽中断源的中断请求;S5=1,表示CPU中断是开放的,允许一切可屏蔽中断源的中断申请。S4、S3:指出当前使用段寄存器的情况。2、地址/状态总线A19/S6-A16/S3A19/S6-A16/S3:地址/状态总线复用引脚,输出,三态。S4、S3组合所对应的段寄存器情况S4S3段寄存器00当前正在使用ES01当前正在使用SS10当前正在使用CS11当前正在使用DS3、控制总线(1)/BHE/S7:(bushighenable/status)高8位数据总线允许/状态复用引脚。在总线周期的T1状态,此引脚输出/BHE信号,表示高8位数据线D15-D8上的数据有效。/BHE、A0组合:/BHEA0总线使用情况00从偶地址单元开始,在16位数据总线AD15~AD0上进行字传送01从奇地址单元开始,在高8位数据总线AD7~AD0上进行字节传送10从偶地址单元开始,在低8位数据总线上AD15~AD8进行字节传送11无效在T2、T3、TW和T4状态时,此