微型计算机原理授课教师:周茂霞及接口技术第2章80X86CPU本章主要内容:1、16位微处理器8086/8088CPU的内部编程结构2、内部寄存器的功能3、CPU外部管脚的作用4、系统对存储器的分段管理5、IBMPC/XT系统主机板的配置6、高档的80X86和pentium系列微处理器的功能结构、主要特点介绍。8086封装在标准40条引脚双列直插式管壳内(DIP),内含29000个晶体,有16位数据线和20条地址线。工作频率:8086为5MHZ,8086-2为8MHZ,8086-1为10MHZ8088CPU与8086异同:准16位微处理器,其内部寄存器、内部运算器以及内部操作都与8086基本相同,不同之处是外部的区别,8088外部数据总线为8位。推出8088原因:兼容已有的一整套intel外围设备接口芯片。分析直接寻址的范围,可访问的输入/输出接口地址范围1M64K2.1.18088/8086CPU的内部编程结构•重点:分为哪两个部件?各部件的组成和功能如何?•8088/8086CPU从功能上分:(1)总线接口部件(BIU):功能,负责CPU与存储器、I/O端口传送数据。即从内存取指令,送指令队列缓冲器。(2)执行部件(EU):功能,负责指令的译码、执行指令。CPU执行指令时,总线接口部件要配合执行部件从指定的内存单元或外设端口中取数据,将数据传送给执行部件,或把执行部件执行的结果传送给指定的内存单元或外设端口中。2.1.18086/8088CPU的内部编程结构图2-18086的内部编程结构总线接口单元(BIU)执行单元(EU)地址总线20位数据总线16位队列总线8位2.1.18088/8086CPU的内部编程结构一.总线接口部件BIU组成:(1)4个段地址寄存器CS——16位的代码段寄存器DS——16位的数据段寄存器ES——16位的扩展段寄存器SS——16位的堆栈段寄存器(2)IP——16位指令指针寄存器(3)20位的物理地址加法器和总线控制电路(4)6字节的指令队列缓冲器2.1.18088/8086CPU的内部编程结构一.总线接口部件BIU组成:1、指令队列缓冲器:8086指令队列为6字节,8088指令队列4字节。8086/8088使用队列装置,采用流水线操作,8086预取6字节指令代码。都在执行指令的同时,从内存取出下一个字节或几个字节的指令代码,放在指令队列中,这样CPU执行完一条指令可以立即执行下一条指令,这种重叠操作的特点,提高了总线的信息传输效率和整个系统的执行速度。总结:BIU与EU两个单元相互独立,分别完成各自操作两个单元可以并行执行,实现指令取指和执行的流水线操作组成:2、8086地址加法器和段寄存器段寄存器地址0000D15D4D3D2D1D0段地址左移4位加减器偏移地址物理地址图2-2物理地址的产生过程高16位地址高16位地址IP16位偏移量+20位物理地址组成:2、8086地址加法器和段寄存器高16位地址高16位地址IP16位偏移量+20位物理地址假设代码寄存器CS=EA00HIP=08800H求物理地址?EA00EA000880EA880+二.执行部件EU执行部件不与系统直接相连,它的功能只是负责译码和执行指令,发各样的控制信号。执行的结果或执行指令的所需要的数据,由EU向BIU发出请求,再由BIU对存储器或外设存取。组成:(1)算术逻辑单元、(2)标志寄存器、(3)通用寄存器组(4)暂存寄存器(5)EU控制电路:控制、定时与逻辑电路,接收从BIU指令队列取来的指令,经指令译码形成各种定时控制信号。8088的内部结构1234内部暂存器IPESSSDSCS输入/输出控制电路外部总线执行部分控制电路∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列执行部件(EU)总线接口部件(BIU)16位20位8位8位返回2.1.28088/8086CPU的内部寄存器FLAGS16位标志寄存器标志寄存器:用来存放指令执行过程的结果和特征,以便控制程序的走向。状态标志位:反映记录算术或逻辑运算的结果或特征,有6个位,计算机根据运算的结果自动把相应的位置1或0。控制标志位:用指令来设置,用来控制CPU的操作,由程序设置或清除。FLAGS16位标志寄存器1、最高位没有产生进位,CF=02、AF=13、PF=14、D6CF=15、OF=D6CF+CF=1这些位计算机自动完成。[例2.1]设AL=01111110B,BL=00101000B求AL+BL=?ADDAL,BL;ALAL+BL01111110+00101000101001102.28086/8088引脚信号与工作模式40条引脚线按功能可以分为5类:一、地址/数据总线二、地址/状态线三、控制总线四、电源线和地线GND2.2.18086/8088引脚信号括号为最大模式引脚名2.28086/8088引脚信号与工作模式40条引脚线按功能可以分为5类:一、地址/数据总线二、地址/状态线三、控制总线四、电源线和地线GND2.2.18086/8088引脚信号括号为最大模式引脚名一、地址/数据总线AD15—AD0(AddressDataBus)8086:这是分时复用的地址数据总线,传送地址时,三态输出;传送数据时,双向三态输入/输出。8088:AD7—AD0:分时复用,AD8—AD15,只用来输出地址。优点:分时复用的方法才能使40条引脚实现20位地址,16位数据及众多控制信号和状态信号的传输,节省了引脚。二、地址/状态A19/s6—A16/s3(Address/Status)分时复用的地址状态总线,三态输出;在总线周期T1状态,做为地址总线的高4位;其它状态,作为状态信号:S6恒等0,表示CPU当前连在总线上;S5表示中断允许标志位的状态,S5=0表示CPU可以响应可屏蔽中断的请求,S5=1,表示CPU禁止一切可屏蔽中断。S4,S3的组合表明当前正在使用的段寄存器。S4S3状态00正在使用ES扩展段寄存器01正在使用SS堆栈段寄存器10正在使用CS或位采用任何段寄存器11正在使用DS扩展段寄存器三、控制总线(ControlBus)1、NMI:非屏蔽中断引脚(输入),不受IF影响,不能用软件屏蔽,只要此信号出现,就在执行完当前的指令后,引起中断。2、INTR:可屏蔽中断请求信号引脚。(输入,高电平有效),IF=1,CPU响应中断,停止执行的指令序列,转向中断服务子程序。3、RESET:系统复位信号引脚(输入高电平有效)复位后内部寄存器状态DS、SS、ES、IP、FLAGS都置0000H指令队列:清除CS:FFFFH三、控制总线(ControlBus)4、CLK:系统时钟,输入。通常与8284集成电路的时钟发生器相连,为系统提供时钟信号。5、RD:读控制信号三态输出,低电平有效,表示CPU将要执行一个存储器或I/O端口的读操作。6、READY:准备好(输入)READY高电平是表示存储器、外部设备已准备好,CPU可以传送数据,当为低电平时,CPU采集到后,进入等待状态。7、TEST:测试信号引脚(输入),它用于多处理器系统,且只有在执行WAIT指令是才使用,当CPU执行WAIT指令时,每隔5个时钟周期对该线进行测试。若为高电平,仍等待,若为低电平等待结束。三、控制总线(ControlBus)8、BHE/S7:高8位数据总线允许/状态复用引脚(三态输出)BHE在总线周期的T1状态输出,当有信号时,表示总线高8位上数据有效;S7在T2---T4时输出。9、MN/MX:最大/最小模式控制引脚MN/MX为高电平时工作在最小模式,MN/MX为低电平时工作在最大模式四、VCC:电源引脚GND:接地(2条)2.28086/8088引脚信号与工作模式2.2.28086/8088的工作模式8086/8088有两种工作模式最小工作模式:单处理机模式最大工作模式:多处理机模式两种方式下系统配置不同2.2.28086/8088的工作模式一、总线接口芯片:地址锁存器和总线驱动器1、地址锁存器:暂存寄存器,根据CPU控制信息的状态将总线上的地址信息暂存起来。8282(或74LS373)是带有三态门的八位锁存器。2个控制信号。DO7DO6DO5DO4DO3DO2DO1DO0DI7DI6DI5DI4DI3DI2DI1DI0锁存器STBOE8282为什么要地址锁存器?2.2.28086/8088的工作模式当控制选通信号STB由高变低时,满足建立时间要求的输入数据被输入到锁存器中。当控制信号线OE为低电平时,三态门处于导通状态,允许输出,数据出现在输出端上,当OE端为高电平时,输出三态门断开,输出缓冲器处于高阻抗。DO7DO6DO5DO4DO3DO2DO1DO0DI7DI6DI5DI4DI3DI2DI1DI0锁存器STBOE8282ALE2.2.28086/8088的工作模式8286B0B1B2B3B4B5B6B7A0A1A2A3A4A5A6A7总线收发器OET2、双向总线驱动器(总线收发器)由于数据CPU与存储器或I/O接口之间的传送是双向的,所以要求总线驱动器是双向的。8286是一种三态输出的8位同相双向总线驱动器,用于数据的双向传送,缓冲、驱动。输入控制引脚T:方向控制器,T为高电平时A到B传送数据,T为低电平时B到A传送数据。门控端OE:低电平有效,OE=1A组B组处于高阻状态DT/R二、最小模式当8086的第33引脚MN/MX固定接到+5V时,就处于最小工作模式。既单处理器系统方式,它适合较小规模的应用。地址锁存信号ALE控制8282的STB,用8282锁存器产生地址总线。8286产生缓冲的数据总线,8086的DEN为低电平允许数据经8286传送,DT/R数据收发控制方向,接到8286的T引脚,DT/R=0时,CPU接收来自数据总线上的数据,DT/R=1时,CPU向数据总线发送数据,控制总线负载轻,不用驱动,直接从CPU引脚引出。在最小工作模式下,CPU提供了所有的控制信号。系统总线类型分为:地址总线、数据总线、控制与状态总线、中断与DMA信号。最小方式:系统只有一个微处理器,产生全部控制信号。INTA:中断响应信号(输出)ALE:地址锁存允许信号(输出DEN:数据允许信号DT/R:数据接收/发送(输出)M/IO:存储器/输入输出控制信号(输出)WR:写信号(输出)HOLD:总线保持请求信号(输入HLDA:总线保持响应信号(输出)当8086的第33引脚MN/MX固定接到地时,就处于最大工作模式。既多处理器系统方式。最大模式与最小摸小模式的主要区别:最大模式外加8288总线控制器,最小模式控制总线直接从CPU引脚引出,最大模式下通过8288对CPU发出的控制信号进行变换组合,以得到对存储器和I/O端口的读/写信号和对锁存器8282及数据收发器8286的控制信号,使总线控制功能更加完善。最大模式是多处理机模式,需要协调主处理器与协处理器的工作问题,需要从硬件与软件两个方面解决。8288因此需要加在最大模式系统中。三、最大模式2.2.28086/8088的工作模式比较两种工作模式可以知道:最小工作模式的控制信号直接从CPU中获得。最大工作模式从S0、S1、S2的组合中获得,所以加一片8288总线控制器。2.2.28086/8088的工作模式1、QS1和QS0:指令队列状态信号。输出,两个信号电平的不同组合,指明了8086/8088内部指令队列的状态。QS1QS000无操作01从指令队列的第一个字节取走代码10队列为空11除第一字节外,还取走后续字节中的代码2、S2、S1、S0:总线周期状态信号,输出。8288对此信号译码,产生内存及I/O端口的读/写控制信号。2.2.28086/8088的工作模式3、LOCK(WR)总线封锁信号.当其有效,其他主设备不能获得总线控制权。4、RQ/GT1(HOLD),RQ/GT0(HALD):总线请求/允许信号。允许8086/8088以外的两个处理器向CPU发送使用总线的请求信号。总线请求与总线允许在同一条线上,方