第二章微型计算机中的微处理器内容:•8086/8088CPU的编程结构•8086/8088CPU的引腿信号和工作模式•寄存器结构•8086/8088的存储器组织•8086的I/O组织•8086/8088微处理器典型时序分析本章重点要求•1、理解、掌握8086/8088微处理器基本结构、各部件功能;•2、理解8086/8088CPU两种工作模式的特点,掌握其主要引脚信号及其使用;•3、了解8086/8088CPU内部寄存器结构,掌握其常用寄存器的使用;•4、了解存储器组织的分体结构及分段管理机制。Intel8086/8088结构8086/8088微处理器是Intel公司推出的第三代CPU芯片,它们的内部结构基本相同,都采用16位结构进行操作及存储器寻址,两种处理器都封装在相同的40脚双列直插组件(DIP)中。在Intel8080与8085的基础上发展起来的。结构特点:(1)内部结构是16位的;(内部寄存器,内部运算部件,内部操作按16位设计);(2)外部数据总线16(8086)/8(8088)位,能处理16位数据,也能处理8位数据;(3)汇编语言与8080/8085兼容,即能执行整套8080/8085的指令,增加了许多16位操作指令;(4)20条地址总线,直接寻址能力1M字节;(5)40条引线、双列直插式;(6)单相时钟;(7)电源为5V。8088微处理器与8086微处理器的主要区别:对外的数据线只有8位,目的是为了方便地与8位I/O接口芯片相兼容。2.18086/8088CPU的编程结构传统结构的CPU执行程序时,取指令与执行指令交替进行:为提高CPU的工作效率,8086/8088CPU采用流水线处理方式,取指令与执行指令同时进行。一方面提高了执行速率;一方面降低了与之相配的存储器的存取速度的要求。8086/8088的编程结构分两部分:1、总线接口单元BIU(BusInterfaceUnit)2、执行部件EU(ExecutionUnit)8086CPU的功能结构一、总线接口单元BIU(BusInterfaceUnit)1、功能:负责与存储器、I/O端口进行数据传送。具体讲:1)取指令:总线接口部件从内存中取出指令后送到指令队列;2)预取指令:可以预取指令,形成指令队列,其中8086可以预期6字节,而8088可以预取4个字节;3)配合EU执行指令,存取操作数和运算结果。2、组成•段地址寄存器(CS、DS、ES、SS)。•16位指令指针寄存器IP(在8086/8088中即PC)。•地址加法器(形成20位物理地址)。•6字节(8086)或4字节(8088)的指令队列。•输入输出控制逻辑。3、注:1)指令队列8086的指令队列为6个字节,8088的指令队列为4个字节。2)指令执行顺序顺序指令执行:指令队列存放紧接在执行指令后面的那一条指令。执行转移指令:BIU清除指令队列中的内容,从新的地址取入指令,立即送往执行单元,然后再从新单元开始重新填满队列。二、EU(ExecutionUnit)执行单元1、功能:负责指令执行。2、组成:•算术逻辑单元ALU:16位加法器。完成8位/16位二进制数的算术逻辑运算;•4个通用寄存器:AX、BX、CX、DX;•4个专用寄存器:BP、SP、SI、DI;•标志寄存器(FR):为16位,存放指令执行结果的特征和处理器状态,如结果为0,为负,单步执行等。•EU执行控制部分:接受从总线接口单元的指令队列中取来的指令代码,对其译码和向EU内各有关部分发出时序命令信号,协调执行指令规定的操作。由此可见,8086/8088微处理器:BIU和EU是分开的,其取指和执行可以重迭,大大减少了等待取指所需的时间,提高CPU的利用率。三、8086/8088处理器的启动和程序执行过程1、CPU的启动8086/8088系统中,CPU被启动后,处理器内部的各寄存器和标志寄存器的内容自动设置为:CSFFFFHDS0000HSS0000HES0000HIP0000H指令队列空FR0000H(禁止中断)因CS=FFFFH,IP=0000,所以8086/8088将从地址FFFF0H开始执行指令;故8086/8088引导程序的入口地址在FFFF0H。2、程序执行过程设程序的指令代码已存放在存贮器中。为执行程序,CPU按照时钟节拍,产生一系列控制信号,有规则地重复进行以下过程。(1)BIU从存贮器中取出一条指令存入指令队列。(2)EU从指令队列取指令并执行指令。BIU利用总线空闲时间,从内存取第二条指令或取第三条指令存入指令队列。(3)EU执行下一条指令。如果前面一条指令有写存贮器的要求,则通知BIU把前条指令结果写到存贮器中,然后再取指令存入指令队列。(4)如指令执行要求读取操作数,由BIU完成。(5)EU执行再下一条指令,返回(1)处继续执行上述操作过程。所以,程序的执行过程就是CPU取指令、分析指令、执行指令,再取指令这样一个循环重复过程。在指令执行过程中,利用EU分析指令操作码和执行指令时不占用总线操作时间的特点,BIU自动地通过总线读取存贮器中的指令码存入BIU指令队列,从而使BIU与EU并行工作,提高CPU执行指令的速度。四、8086/8088CPU的总线周期概念在8086/8088CPU中,所有读/写存储器或I/O端口的操作都是总线接口部件BIU通过系统总线完成的。总线周期:BIU通过系统总线对存储器或I/O端口进行一次读/写操作的过程称为一个总线周期。8086/8088CPU的一个基本总线周期由4个时钟周期(T1~T4)组成,也称4个T状态。CPU在每个时钟周期内完成若干个基本操作,具体是:T1状态:CPU向多路复用总线上发送地址信息指出要寻址的存储单元或外设端口地址。•T2状态:CPU从总线上撤消地址,使总线的低16位置为高阻抗状态,为传输数据作准备。总线的高4位输出本总线周期状态信息;这些状态信息用来表示中断允许状态、当前正在使用的段寄存器等。•T3状态:CPU在总线的高4位继续输出总线周期状态信号。在总线的低16位出现由CPU写出的数据,或者从存储器或I/O端口读入的数据。•T4状态:总线周期结束。TW等待状态:如果存储器或I/O设备不能及时配合CPU传送数据,这时外设或存储器会通过“READY”信号线在T3状态启动之前向CPU发数据“未准备好”信号,迫使CPU在T3状态后插入等待状态TW;TW状态的总线情况与T3周期的情况相同;当被选中的存储器或I/O端口有足够的时间来完成读写操作时,就发出“准备好”Ready)信号,使CPU脱离TW状态继续工作。TI空闲状态:如果在一个总线周期之后,不立即执行下一个总线周期,或者当指令队列是满的,执行部件EU又没有访问总线的要求,这时BIU就处于空闲状态;空闲状态,可以包含一个或几个时钟周期。8086/8088CPU的典型总线周期时序一、最大和最小工作模式最小工作模式:指系统中只有8086/8088一个微处理器,构成小规模的应用系统;最小模式也称单处理器模式。在最小模式系统中,所有的系统总线信号都直接由8086/8088CPU产生。最大工作模式:指系统中包含有两个或两个以上的微处理;一个为主处理器(8086/8088CPU),其他的称为协处理器,协助主处理器工作,构成较大规模的应用系统。常与主处理器8086/8088CPU配合的协处理器:一个是专用于数值运算的协处理器8087;另一个是专用于输入/输出操作的协处理器8089。最大模式是一个多处理器系统,需要解决主处理器和协处理器之间的协调工作问题和对系统总线的共享控制问题;故在硬件方面增加了一个总线控制器8288,由其对CPU发出的控制信号进行变换和组合,产生所有的总线控制信号。2.28086/8088CPU的引脚信号和工作模式二、8086/8088CPU的引脚信号和功能8088/8086CPU的引脚1、AD15~AD0(Address/DataBus)地址/数据复用总线传送地址时三态输出,传送数据时三态双向输入/输出。T1状态:用来输出访问存储器或I/O端口(I/O端口的地址是16位的)的地址。T2状态:如果是读周期,则处于浮空(高阻)状态,如果是写周期,则为传送数据。在中断响应及系统总线处于“保持响应”周期时,AD15~AD0被置成高阻状态。在8086系统中,常将AD0为低8位数据的选通信号。2、A19/S6~A16/S9(Address/Status)地址/状态复用线作地址线时,高4位(A19~A16)地址,与AD15~AD0构成20位访问存储器的物理地址。作状态线时,输出状态信息S6~S3。3、/S7(BusHighEnable/Status)高8位数据总线允许/状态复用信号,低电平有效。和AD0结合起来,指出当前传送的数据在总线上将以何种格式出现。4、RD(Read)读信号。输出、三态、低电平有效。有效时,表示CPU正在对存储器或I/O端口进行读操作,具体是对存储器读,还是对I/O端口读,由/M(8088为IO/M)决定。5、READY存储器或I/O口准备就绪信号,输入。用来使CPU和慢速存储器或I/O设备之间实现速度匹配的信号。该信号来自于被访问的存储器或I/O设备。在总线操作周期中,CPU会在每个T3状态测试该引脚:如果测到高电平则有效,CPU直接进入第4个时钟周期;如果测到低电平则无效,CPU将插入等待周期Tw。CPU在等待周期中仍然要监测READY信号,有效则进入第4个时钟周期,否则继续插入等待周期Tw。BHEBHEIO6、(Test)测试信号,输入、低电平有效。用于协调8086/8088CPU与协处理器的工作。该引脚与WAIT指令配合使用。当CPU执行WAIT指令时,他将在每个时钟周期对该引脚进行测试:如果无效,则程序踏步并继续测试;如果有效,则程序恢复运行。也就是说,WAIT指令使CPU产生等待,直到引脚有效为止。在使用协处理器8087时,通过引脚和WAIT指令,可使8088与8087的操作保持同步。7、INTR(InterruptRequest)可屏蔽中断请求信号,输入、高电平有效。CPU在每条指令周期的最后一个时钟周期检测此引脚,一旦测得有中断请求,并且中断允许标志位IF为1,则CPU在当前指令执行结束后,转入中断响应周期。8、NMI(NO-MaskableInterrupt)不可屏蔽中断请求信号,输入、高有效。9、RESET(Reset)复位信号,输入、高电平有效。有效时至少要保留4个时钟周期。TEST10、CLK(Clock)主时钟输入端11、MN/MX(MaximumModeControl)最小/最大模式控制信号。当此引脚接高电平时,CPU工作于最小模式;接低电平时,CPU工作于最大模式。12、GND、VCCGND为接地端,VCC为电源端。以上信号是8086/8088CPU工作在最小模式和最大模式时都要用到的。8086/8088的第24~31引脚信号在不同模式下有不同的名称和定义。两种模式下的主要区别体现在第24~31号引脚的功能定义不同。IOIOM三、最小模式1、引腿信号(1)/M(Memory/InputandOutput)存储器/输入输出控制信号。三态、输出,用来区分CPU当前是访问存储器还是访问I/O端口。对于8088CPU,该信号定义为IO/,功能相同。(2)(Write)写信号,三态、输出、低电平有效。有效时,表示CPU当前正在进行写操作。是写存储器还是写I/O端口,由/M来区分。DMA方式时,/M被置成高阻态。WRIO(3)(InterruptAcknowledge)中断响应信号,输出、三态、低电平有效是对中断请求信号INTR的响应。CPU在整个中断响应周期内发出两个连续的负脉冲,第一个负脉冲是通知请求中断的外设,其发出的中断请求已得到响应,外设接口收到第二个负脉冲后,向数据总线上送中断类型码,信号通常用来作为读取中断类码的选通信号。INTAINTA(4)ALE(AddressLatchEnable)地址锁存允许信号,输出、高电平有效。在任何一个总线周期的T1状态,ALE