1、第4章 16位微处理器,汤世平 北京理工大学,目录,4.1 16位微处理器概述 4.2 8086/8088 CPU的结构 4.3 8086/8088 CPU的引脚信号和工作模式 4.4 8086/8088的主要操作功能 习题,4.1 概述,微处理器(microprocessor)是微型计算机的运算及控制部件,也称中央处理单元(CPU)。 通常,微处理器由算术逻辑部件(ALU)、控制部件、寄存器组和片内总线等几部分组成,发展简史,第一代微处理器 1971年Intel公司推出的4040和8008 采用PMOS工艺的4位及8位微处理器 只能进行串行的十进制运算 集成度达到2,000个晶体管片 第二代
2、微处理器 1974年推出的8080,M6800及Z-80等 采用NMOS工艺的8位微处理器 集成度达到9,000个晶体管片,发展简史(续),8位微处理器的缺限 对许多算术运算和其他操作都必须编制程序。例如,即使是乘法和除法这样基本的运算都必须用子程序来实现。 由于每次只能处理8位数据,处理大量数据就要分成许多个8位字节进行操作,数值越大或越小,计算时间都很长,这对数量大的数据库、文字处理或实时控制等应用来说就太慢了。 寻址能力有限。典型8位微处理器有一条16位地址线,因此最多可寻址64K个存储单元,对于具有大量数据的大型复杂程序是不够的。,发展简史(续),第三代微处理器 20世纪70年代后期
3、Intel的80868088,Motorola的M68000和Zilog的Z8000等16位微处理器 运算速度比8位微处理器快25倍 采用HMOS高密度工艺, 集成度达29 000个晶体管片 赶上或超过了20世纪70年代小型机的水平 20世纪80年代以后,Intel公司又推出了高性能的16位微处理器80186及80286 速度比8086快56倍。处理器本身包含存储器管理和保护部件,支持虚拟存储体系,发展简史(续),第四代微处理器 1985年80386及M68020 集成度达45万个晶体管片 它们是32位微处理器,时钟频率达40MHz,速度之快、性能之高,足以同高档小型机相匹敌 1989年804
4、86,1993年Pentium及80586等更高性能的32位及64位微处理器,本章重点,16位80868088微处理器 8086和8088 CPU的内部基本相同,但它们的外部性能是有区别的。 8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据字时,8088需要两步操作而8086只需要一步。 8086和8088 CPU的内部都采用16位字进行操作及存储器寻址,两者的软件完全兼容,程序的执行也完全相同。 由于8088要比8086有较多的外部存取操作,所以,对相同的程序,它将执行得较慢。 这两种微处理器都封装在相同的40脚双列直插组件(DIP)中。,4.2 80868088 C
5、PU的结构,8086 CPU 总线接口部件BIU(bus interface unit,BIU) 执行部件EU(execution unit)。 8086的内部结构如图4.1所示。,图4.1,4.2.1 执行部件,执行部件(EU)的功能就是负责指令的执行。将指令译码并利用内部的寄存器和ALU对数据进行所需的处理。 从结构图4.1中,可见到执行部件由下列部分组成: 4个通用寄存器,即AX,BX,CX,DX; 4个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI; 标志寄存器(FR); 算术逻辑部件(ALU)。,80868088的EU的特点:,4个通用寄存
6、器既可以作为16位寄存器使用,也可以作为8位寄存器使用。 BX寄存器:作为8位寄存器时,分为BH和BL。 AX寄存器:累加器 作为16位来使用时,可以进行按字操作; 作为8位来使用时,可以实现按字节操作。 加法器是算术逻辑的主要部件,绝大部分指令的执行都由加法器来完成。 标志寄存器FR共有16位,其中7位未用,所用的各位含义如下:,8086的标志,状态标志它是操作在执行后,决定算术逻辑部件ALU处在何种状态,这种状态会影响后面的操作。 控制标志人为设置的,指令系统中有专门的指令用于控制标志的设置和清除,每个控制标志都对每一种特定的功能起控制作用。 状态标志有6个,即SF,ZF,PF,CF,AF
7、和OF。,4.2.2 总线接口部件BIU,总线接口部件的功能是负责与存储器、IO端口传送数据,即BIU管理在存储器中存取程序和数据的实际处理过程。 总线接口部件由下列各部分组成: 4个段地址寄存器,即CS16位代码段寄存器;DS16位数据段寄存器;ES16位附加段寄存器;SS16位堆栈段寄存器。 16位指令指针寄存器IP。 20位的地址加法器。 6字节的指令队列。,80868088的BIU的特点,8086的指令队列为6个字节,8088的指令队列为4个字节。 地址加法器用来产生20位地址。 8086可用20位地址寻址1M字节的内存空间,但8086内部所有的寄存器都是16位的,所以需要由一个附加的
8、机构来根据16位寄存器提供的信息计算出20位的物理地址。 一条指令的物理地址就是根据代码段寄存器CS和指令指针寄存器IP的内容得到的。 将段寄存器的内容左移4位,然后再与IP的内容相加。假设CS=0FE00H,IP=0400H,此时指令的物理地址为0FE400H。,流水线技术,每当8086的指令队列中有两个空字节,或者8088的指令队列中有一个空字节时,总线接口部件就会自动把指令取到指令队列中。 EU执行一条指令时,从总线接口部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。 如果必须访问存储器或者输入输出设备,那么,执行部件就会请求总线接口部件,进入总线周期,完成访问内存或者输
9、入输出端口的操作; 如果此时总线接口部件正好处于空闲状态,会立即响应执行部件的总线请求。 如果总线接口部件正在将某个指令字节取到指令队列中,将首先完成这个取指令的总线周期,然后再去响应执行部件发出的访问总线的请求。,流水线技术(续),当指令队列已满,而且执行部件又没有总线访问时,总线接口部件便进入空闲状态。 在执行转移指令、调用指令和返回指令时,指令队列中的原有内容被自动消除,总线接口部件会接着往指令队列中装入另一个程序段中的指令。 为什么?,4.2.3 存储器结构,80868088系统中存储器按字节编址 可寻址的存储器空间为1MB 每个字节所对应的地址应是20位(二进制数) 这20位的地址称
10、为物理地址,1. 存储器的分段,20位的物理地址在CPU内部就应有20位的地址寄存器,而机内的寄存器是16位的(16位机),16位寄存器只能寻址64KB。 80868088系统中把1M存储空间分成若干个逻辑段,每个逻辑段容量64KB,因此1M的存储空间可分成16个逻辑段(015)。 允许段在整个存储空间浮动,即段与段之间可以部分重叠、完全重叠、连续排列、断续排列,非常灵活。 在整个存储空间中可设置若干个逻辑段,如图4.2所示。,图4.2,1. 存储器的分段(续),任何一个物理地址,可以惟一地被包含在一个逻辑段中,也可包含在多个相互重叠的逻辑段中 只要有段地址和段内偏移地址就可以访问到这个物理地
11、址所对应的存储空间,如图4.3所示。,图 4.3,1. 存储器的分段(续),节(paragraph):16字节的存储空间。 为了简化操作,要求各个逻辑段从节的整数边界开始,也就是说段首地址低4位应该是“0” 因此就把段首地址的高16位称为“段基址”,存放在段寄存器DS或CS或SS或ES中,段内的偏移地址存放在IP或SP中。 若已知当前有效的代码段、数据段、附加段和堆栈段的段基址分别为1055H, 250AH, 8FFBH和EFF0H,那么它们在存储器中的分布情况如图4.4所示。,图4.4,2. 存储器中的逻辑地址和物理地址,任何一个20位物理地址,也称为绝对地址,都是由两部分组成。 采用分段结
12、构的存储器中,任何一个逻辑地址由段基址和偏移地址两个部分构成,它们都是无符号的16位二进制数。 任何一个存储单元对应一个20位的物理地址,也可称为绝对地址,它是由逻辑地址变换得来的。当CPU需要访问存储器时,必须完成如下的地址运算:物理地址=段基址16+偏移地址 物理地址的形成如图4.5所示,它是通过CPU的总线接口部件BIU的地址加法器来实现的。 例如,代码段寄存器CS=2000H,指令指针寄存器存放的是偏移地址IP=2200H,存储器的物理地址为 20000H+2200H=22200H。,图 4.5,2. 存储器中的逻辑地址和物理地址(续),每一个存储单元具有两种类型的地址:物理地址和逻辑
13、地址。 物理地址就是实际地址,它具有20位的地址值,并是惟一标识1MB存储空间的某一个字节的地址。 逻辑地址由段基址和偏移地址组成。程序以逻辑地址编址,而不是用物理地址。 4个段寄存器分别指向4个现行可寻址的分段的起始字节单元。 一般指令程序存放在代码段中,段地址来源于代码段寄存器,偏移地址来源于指令指针IP。 当涉及到一个堆栈操作时,段地址寄存器为SS,偏移地址来源于栈指针寄存器SP。 当涉及到一个操作数时,则由数据段寄存器DS或附加段寄存器ES作为段寄存器,而偏地址是由16位偏移量得到。16位偏移量可以是指令中的偏移量加上16位地址寄存器的值组成,取决于指令的寻址方式。,4.2.4 808
14、6总线的工作周期,为了取得指令和传送数据的协调工作,需要CPU的总线接口部件执行一个总线周期。 在80868088中,一个最基本的总线周期由4个时钟周期组成,时钟周期是CPU的基本时间计量单位,它由计算机主频决定。例如,8086的主频为10MHz,一个时钟周期就是100ns。 在一个最基本的总线周期中,常将4个时钟周期分别称为4个状态,即T1状态、T2状态、T3状态、T4状态。典型的8086总线周期序列见图4.6。,图4.6,4.2.4 8086总线的工作周期(续),CPU往多路复用总线上发出地址信息,以指出要寻址的存储单元或外设端口的地址。 CPU从总线上撤消地址,而使总线的低16位浮置成高
15、阻状态,为传输数据做准备。总线的最高四位(A16A19)用来输出本总线周期状态信息。这些状态信息用来表示中断允许状态,当前正在使用的段寄存器名等。 多路总线的高4位继续提供状态信息,而多路总线的低16位(8088则为低8位)上出现由CPU写出的数据或者CPU从存储器或端口读入的数据。,4.2.4 8086总线的工作周期(续),被写入数据或者被读取数据的外设或存储器不能及时地配合CPU传送数据。 外设或存储器会通过“READY”信号线在T3状态启动之前,向CPU发一个“数据未准备好”信号,于是CPU会在T3之后插入一个或多个附加的时钟周期TW TW也叫等待状态。 在TW状态,总线上的信息情况和T
16、3状态的信息情况一样。 当指定的存储器或外设完成数据传送时,便在“READY”线上发出“准备好”信号,CPU接收到这一信号后,会自动脱离TW状态而进入T4状态。,4.2.4 8086总线的工作周期(续),只有在CPU和内存或IO接口之间传输数据,以及填充指令队列时,CPU才执行总线周期。 如果在一个总线周期之后,不立即执行下一个总线周期,那么系统总线就处在空闲状态,此时,执行空闲周期。 在空闲周期中,可以包含一个或多个时钟周期。在 这期间,高4位上,CPU仍然驱动前一个总线周期的状态信息,而且,如果前一个总线周期为写周期,那么,CPU会在总线低16位上继续驱动数据信息; 如果前一个总线周期为读
17、周期,则在空闲周期中,总线低16位处于高阻状态。,4.3 80868088 CPU的引脚信号和工作模式,为了尽可能适应各种使用场合,在设计80868088CPU芯片时,就使得它们可以在两种模式下工作,即最小模式和最大模式。 最小模式,就是在系统中只有80868088一个微处理器。在这种系统中,所有的总线控制信号都直接由80868088产生,因此,系统中的总线控制逻辑电路被减到最少。 最大模式是相对最小模式而言,它用在中等规模的或者大型的80868088系统中。 在此系统中,包含两个或多个微处理器,其中一个主处理器就是80868088,其他的处理器称为协处理器,它们是协助主处理器工作的。 和80
18、868088配合的协处理器有两个,一个是数值运算协处理器8087,一个是输入输出协处理器8089。 80868088的工作模式完全是由硬件决定的。,8087,8087是一种专用于数值运算的处理器,它能实现多种类型的数值操作。 例如,高精度的整数和浮点运算,也可以进行超越函数(如:三角函数、对数函数)的计算。 由于在通常情况下,这些运算往往通过软件方法来实现,而8087是用硬件方法来完成这些运算的,所以在系统中加入协处理器8087之后,会提高系统的数值运算速度。,8089,8089在原理上像带有两个DMA通道的处理器。它有一套专门用于输入输出操作的指令系统 但和DMA的控制器不同,可以直接为输入
19、输出设备服务,使80868088不再承担这类工作。 在系统中增加协处理器8089后,提高主处理器的效率,尤其是在输入输出频繁的场合。,4.3.1 80868088的引脚信号和功能,8086和8088的引脚信号图如图4.7所示。,图 4.7,1. 地址数据复用引脚(双向工作),AD15AD0 在8088中,A8A15并不作复用,它们只用来输出地址,称为A8A15。 作为复用引脚,在总线周期的T1状态用来输出要访问的存储器或IO端口地址。T2T3状态,对读周期来说,处于浮空状态;对写周期来说,则是传输数据。,1. 地址数据复用引脚(双向工作)(续),在8086系统中,一般常将AD0信号作为低8位数
20、据的选通信号。 因为,每当CPU和偶地址单元或偶地址端口交换数据时,在T1状态,AD0引脚传送的地址信号必定为低电平;在其他状态,则用来传送数据。 CPU的传输特性决定了只要是偶地址单元或偶地址端口交换数据,那么,CPU必定通过总线低8位,即AD7AD0传输数据。可见,如果在总线周期的T1状态,AD0为低电平,实际上就指示了在这一总线周期的其余状态中,CPU将用总线低8位和偶地址单元或偶地址端口交换数据。 因此,AD0和下面讲到的BHE类似,可以用来作为接于数据总线低8位上的8位外设接口芯片的选通信号。 AD15AD0在CPU响应中断,以及系统总线“保持响应”时,都被浮置为高阻状态。,2. 地
21、址/状态复用引脚(输出),A19S6A16/S3(address/status) A19/S6A16/S3在总线周期的T1状态,用来输出地址的最高4位。 在总线周期的T2,T3,TW和T4状态时,用来输出状态信息。 S6为0,用来指示80868088当前与总线相连,所以在T2,T3,TW和T4状态时,80868088总是使S6等于0,以表示80868088当前连在总线上。 S5表明中断允许标志的当前设置,若为1,表示当前允许可屏蔽中断请求;若为0,则禁止一切可屏蔽中断。 S4,S3合起来指出当前正在使用哪段寄存器。,3. 高8位数据总线允许/状态复用引脚(输出),BHES7(bus high
22、enable/status) 在总线周期的T1状态,8086在BHES7引脚输出BHE信号,表示高8位数据总线D15D8上的数据有效。 在T2,T3,TW和T4状态,BHES7引脚输出状态信号S7。 不过,在当前的芯片(8086,8086-1,8086-2)设计中,S7并未被赋予任何实际意义。 在8088系统中,第34脚不是BHE7S7,而是被赋予另外的信号。在最大模式时,此引脚恒为高电平;在最小模式中,则为SS0,它和DTR,MIO一起决定了8088芯片当前总线周期的读写动作。,4. 非屏蔽中断引脚(输入),NMI(non-maskable interrupt) 非屏蔽中断信号是一个由低到高
23、的上升沿。这类中断不受中断标志IF的影响,也不能用软件进行屏蔽。 每当NMI端进入一个正沿触发信号时,CPU就会在结束当前指令后,进入对应于中断类型号为2的非屏蔽中断处理程序。,5. 可屏蔽中断请求信号引脚(输入),INTR(interrupt request) 可屏蔽中断请求信号为高电平有效,CPU在执行每条指令的最后一个时钟周期会对INTR信号进行采样,如果CPU中的中断允许标志为1,并且又接收到INTR信号,那么,CPU就会在结束当前指令后,响应中断请求,进入一个中断处理子程序。,6. 读信号引脚(输出),RD(read) 此信号指出将要执行一个对内存或IO端口的读操作。 到底是读取内存
24、单元中的数据还是IO端口中的数据,这决定于MIO信号。 在一个执行读操作的总线周期中,RD信号在T2,T3和TW状态均为低电平。在系统总线进入“保持响应”期间,RD引脚被浮置为高阻状态。,7. 时钟引脚(输入),CLK(clock) 80868088要求时钟信号的占空比为33%,即13周期为高电平,23周期为低电平。 80868088的时钟频率要求为5MHz,8086-1的时钟频率为10MHz,8086-2的时钟频率则为8MHz,时钟信号为CPU和总线控制逻辑电路提供定时手段。,8. 复位信号引脚(输入),RESET(reset) 复位信号为高电平有效。 80868088要求复位信号至少维持4
25、个时钟周期的高电平才有效。 复位信号来到后,CPU便结束当前操作,并对处理器标志寄存器、IP,DS,SS,ES及指令队列清零,而将CS设置为FFFFH。当复位信号变为低电平时,CPU从FFFF0H开始执行程序。,9. “准备好”信号引脚(输入),READY(ready) “准备好”信号实际上是由所访问的存储器或IO设备发来的响应信号,高电平有效。 “准备好”信号有效时,表示内存或IO设备准备就绪,马上就可进行一次数据传输。 CPU在每个总线周期的T3状态开始对READY信号进行采样。 如果检测到READY为低电平,则在T3状态之后插入等待状态TW 在TW状态,CPU也对READY进行采样,若R
26、EADY仍为低电平,则会继续插入TW,所以TW可以插入一个或多个。 直到READY变为高电平后,才进入T4状态,完成数据传送过程,从而结束当前总线周期。,10. 测试信号引脚(输入),TEST(test) 测试信号为低电平有效。 TEST信号是和指令WAIT结合起来使用的,在CPU执行WAIT指令时,CPU处于空转状态进行等待;当8086的TEST信号有效时,等待状态结束,CPU继续往下执行被暂停的指令。,11. 最小最大模式控制信号引脚(输入),MNMX(minimummaximum mode control) 它是最大模式及最小模式的选择控制端。此引脚固定接为+5V时,CPU处于最小模式;
27、如果接地,则CPU处于最大模式。,12. GND地和Vcc电源引脚,80868088均用单一+5V电源。 80868088CPU的第24脚第31脚在最大模式和最小模式下有不同的名称和定义。,4.3.2 最小工作模式,当80868088的第33脚MNMX固定接到+5V时,就处于最小工作模式,最小模式下第24脚第31脚的信号含义如下。,1. 中断响应信号(输出),INTA(interrupt acknowledge) 在最小模式下,第24脚作为中断响应信号的输出端,用来对外设的中断请求作出响应。 对于80868088来讲,INTA信号实际上是位于连续周期中的两个负脉冲,在每个总线周期的T2,T3和
28、TW状态,INTA端为低电平。第1个负脉冲通知外部设备的接口,它发出的中断请求已经得到允许;外设接口收到第2个负脉冲后,往数据总线上放中断类型码,从而CPU便得到了有关此中断请求的详尽信息。,2. 地址锁存允许信号(输出),ALE(address latch enable) 第25脚在最小模式下为地址锁存允许信号输出端,这是80868088提供给地址锁存器82828283的控制信号,高电平有效。 在任何一个总线周期的T1状态,ALE输出有效电平,以表示当前在地址数据复用总线上输出的是地址信息,地址锁存器将ALE作为锁存信号,对地址进行锁存。 注意ALE端不能被浮空。,3. 数据允许信号,DEN
29、(data enable) 第26脚在最小模式下作为数据允许信号输出端。在用82868287作为数据总线收发器时,DEN为收发器提供了一个控制信号,表示CPU当前准备发送或接受一个数据。总线收发器将DEN作为输出允许信号。 DEN信号的电平输出情况如下: 在每个存储器访问周期和IO访问周期为低电平,即有效电平; 在中断响应周期,也为有效电平。 如果是读周期或者是中断响应周期,DEN在T2状态的中间开始有效,并且一直保持到T4状态的中间。在DMA方式时,DEN被浮置为高阻状态。,4. 数据收发(输出),DTR(data transmitreceive) 在使用82868287作为数据总线收发器时
30、,DTR信号用来控制82868287的数据传送方向。 如果DTR为高电平,则进行数据发送; 如果DTR为低电平,则进行数据接收。 在DMA方式时,DTR被浮置为高阻状态。,5. 存储器输入输出控制信号(输出),MIO(memory/input and output) 此信号若为高电平,表示CPU和存储器之间进行数据传输;若为低电平,表示CPU和输入输出设备之间进行数据传输。 一般在前一个总线周期的T4状态,MIO就成为有效电平,然后开始一个新的总线周期。在此周期中,MIO一直保持有效电平,直到本周期的T4状态为止。在DMA方式时,MIO被浮置为高阻状态。,6. 写信号(输出),WR(write
31、) 此信号为低电平有效。 WR有效时,表示CPU当前正在进行存储器或IO写操作,具体到底为哪种写操作,则由MIO信号决定。对任何写周期,WR只在T2,T3,TW期间有效。在DMA方式时,WR被浮置为高阻状态。,7. 总线保持请求信号(输入),HOLD(hold request) 当系统中CPU之外的另一个主模块要求占用总线时,就在当前总线周期完成时,于T4状态从HLDA引脚发出一个回答信号,对刚才的HOLD请求作出响应。 同时,CPU使地址数据总线和控制状态线处于浮空状态。总线请求部件收到HLDA信号后,就获得了总线控制权,在此后一段时间,HOLD和HLDA都保持高电平。 在总线占有部件用完总
32、线之后,会把HOLD信号变为低电平,这样,CPU又获得了地址数据总线和控制状态线的占有权。,8. 总线保持响应信号(输出),HLDA(hold acknowledge) 此信号为高电平有效。 当HLDA有效时,表示CPU对其他主部件的总线请求作出响应,与此同时,所有与三态门相接的CPU的引脚呈现高阻抗,从而让出了总线。,在最小模式下,8088和8086的第34脚的信号定义不同。 对8086来说,第34脚为BHES7,由于S7未被赋予实际意义,所以,此引脚就是用来提供高8位数据总线允许信号。 对8088来说,对外只有8位数据总线,没有高8位数据总线,因而也不需要BHE信号。所以,第34脚不再是B
33、HES7,而叫SS0。 SS0,MIO(在8088中,第28脚上不是MIO,而是MIO)和DTR组合起来,决定了当前总线周期的操作。,最小模式下的系统配置,除了各引脚的信号名称和含义以外,还要了解最小模式下系统是怎样配置的。 即除了CPU外,还需要哪些芯片来构成一个按照最小模式工作的系统?这些芯片和CPU之间的主要连接关系是什么样的? 图4.8是8086在最小模式下的典型配置。 由图4.8可看到,在8086的最小模式中,硬件包括:1片8284A,作为时钟发生器;3片8282或74LS373,用来作为地址锁存器;当系统中所连的存储器和外设较多时,需要增加数据总线的驱动能力,这时,要用两片8286
34、8287作为总线收发器。,图4.8,最小模式下的系统配置(续),在总线周期的前一部分时间,CPU总是送出地址信号,为了告诉地址已经准备好,可以被锁存,CPU此时会送出高电平的ALE信号,所以,ALE就是允许锁存的信号。 除了地址信号外,BHE信号也需要锁存。 在后面的时序图上,将看到地址数据总线是复用的,而BHE和S7(在当前芯片设计中,S7未被赋予意义)也是复用的,所以在总线周期前一部分时间中输出的是地址信号和BHE信号。 在总线周期的后一部分时间中改变了含义,因为有了锁存器对地址和BHE进行锁存,所以在总线周期的后半部分,地址和数据同时出现在系统的地址总线和数据总线上;同样,此时BHE也在
35、锁存器输出端呈现有效电平,于是,确保了CPU对锁存器和IO设备的正常读写操作。,最小模式下的系统配置(续),8282是典型的锁存器芯片,不过它是8位的,而80868088系统采用20位地址,加上BHE信号,所以,需要3片8282作为地址锁存器。74LS373也可作为地址锁存器,用法与8282相同。 对于有些只配备64KB内存的小系统,只用16位地址就够了,如果CPU又采用8088,这样,就不存在BHE信号。所以,此时只需两片8282做锁存器。 下面以8282为例简要讲述一下锁存器的信号连接,具体连线图如图4.9所示。,图4.9,最小模式下的系统配置(续),8282的选通信号输入端STB和CPU
36、的ALE端相连。以第1个锁存器为例,8282的DI7DI0接CPU的AD7AD0,8282的输出DO7DO0就是系统地址总线的低8位。OE为输出允许信号,当OE为低电平时,8282的输出信号DO7DO0有效;而当OE为高电平时,DO7DO0变为高阻抗。在不带DMA控制器的80868088单处理器系统中,将OE接地就行了。 如果用74LS373作为锁存器,使用方法和8282几乎一样。只是在74LS373中,芯片选通信号不用STB表示,而用LE表示,这实际上更符合锁存功能的含义。 当一个系统中所含的外设接口较多时,数据总线上需要有发送器和接收器来增加驱动能力。发送器和接收器简称为收发器,也常常称为
37、总线驱动器。,最小模式下的系统配置(续),Intel系统芯片的典型收发器为8286,是8位的。所以,在数据总线为8位的8088系统中,只用1片8286就可以构成数据总线收发器,而在数据总线为16位的8086系统中,则要用两片8286。 从图4.10中,可以看到8286具有两组对称的数据引线:A7A0为输入数据线,B7B0为输出数据线。 由于在收发器中数据是双向传输的,所以,实际上输入线和输出线也可以交换。 用T表示的引脚信号就是用来控制数据传输方向的。当T=1时,就使A7A0为输入线,B7B0为输出线;当T=0时,则使B7B0为输入线。在系统中,T端和CPU和DTR端相连,DTR为数据收发信号
38、。当CPU进行数据输出时,DTR为高电平,于是数据流由A7A0输入,从B7B0输出。当CPU进行数据输入时,DTR为低电平,于是数据流由B7B0输入,而从A7A0输出。,最小模式下的系统配置(续),OE是输出允许信号,此信号决定了是否允许数据通过8286。 当OE=1时,数据在两个方向上都不能传输。只有当OE=0时,并且T也为1,才使数据从A7A0流向B7B0;同样,只有当OE=0时,并且T也为0,才使数据从B7B0流向A7A0。 在80868088系统中,OE端和CPU的DEN端相连,在介绍引脚信号时,我们讲过,在CPU的存储器访问周期和IO访问周期中,DEN为低电平,在中断响应周期,DEN
39、也为低电平。正是在这些总线周期中,需要8286开启,以允许数据通过,从而完成了CPU和其他部件之间的数据传输。,图4.10,最小模式下的系统配置(续),当系统中CPU以外的总线主控部件对总线有请求,并且得到CPU允许时,CPU的DEN和DTR端呈现高阻状态,从而使8286各输出端也成为高阻状态。 有时候,在设计系统总线时,希望提供给各部件数据信号的相位正好和CPU的原始数据信号相反;反过来也一样,也就是需要将外部数据信号反一个相位再提供给CPU。 为了满足这种要求,Intel公司又提供了另一个功能和8286相仿的芯片8287。 在这样的系统中,一般对地址信号也要求反一个相位,这时,地址锁存器就
40、不用8282,而是采用Intel公司的另一个芯片8283,其功能和8282相仿,但提供的输出信号相位相反。,最小模式下的系统配置(续),通常,在一个工作于最小模式的系统中,控制线并不需要用总线收发器进行驱动。如果系统中存储器和外设接口芯片多,出于需要,也可以使用总线收发器。 最小模式系统中,信号MIO,RD和WR组合起来决定了系统中数据传输的方式。 在8086最小模式典型配置中,除上述8282及8286外,还有一个时钟发生器8284A。它与CPU的连接如图4.11所示。 8284A的功能有3个:产生恒定的时钟信号,对准备信号(READY)及复位信号(RESET)进行同步。由图4.8可见 ,外界
41、控制信号RDY及RES信号可以在任何时候到来,8284A能把它们同步在时钟后沿(下降沿)时输出READY及RESET信号到8086CPU。,8284A,8284A的振荡源一般采用晶体振荡器,如图4.11所示。 也可以用外接脉冲发生器作为振荡源。 此时,8284A的F端应接高电平。 8284A输出的时钟频率为振荡源频率的1/3。,图4.11,4.3.3 最大工作模式,80868088CPU为实现多处理器控制系统(多主控系统)就要增设总线控制器8288和总线仲裁器8289。最大工作模式的典型配置如图4.12所示。这时,80868088的MNMX引脚接地。,图4.12,最大工作模式第2431引脚含义
42、,QS1和QS0(instruction queue status)指令队列状态信号(输出) 在最大工作模式时,第24引脚及第25引脚作为QS1及QS0信号输出端,这两个信号提供总线周期的前一个状态中指令队列的状态。 S2,S1及S0(bus cycle status)总线周期状态信号(输出) 在最大工作模式时,第26引脚,第27引脚及第28引脚为S0,S1及S2信号输出端。它们提供当前总线周期中所进行的数据传输过程类型。由总线控制器8288根据这些信号对存储器及IO进行控制。,最大工作模式第2431引脚含义(续),LOCK(lock)总线封锁信号(输出) 在最大工作模式时,第29引脚为总线封
43、锁信号输出端。当LOCK为低电平时,其它总线主控部件都不能占用总线。在DMA期间,LOCK端被浮空而处于高阻状态。 LOCK信号由指令前缀LOCK产生,在LOCK前缀后的一条指令执行完后,便撤销LOCK信号,为防止80868088中断时总线被其他主控部件所占用,因此在中断过程中,LOCK信号也自动变为低电平。,最大工作模式第2431引脚含义(续),RQGT1,RQGT0(requestgrant)总线请求信号(输入)总线请求允许信号(输出) 在最大工作模式时,第30引脚及第31引脚分别为总线请求信号输入端总线请求允许信号输出端,可供CPU以外两个协处理器用来发出使用总线请求和接收CPU对总线请
44、求信号的回答信号。这两个应答信号都是双向的。RQGT0的优先级比RQGT1的高。 在最大工作模式下,8086的第34引脚为BHES7,而8088的第34引脚恒为高电平。,总线控制器及总线仲裁器,由于最大工作模式是以8086 CPU为中心的多处理器控制系统,它们共用一条外部总线,因而需要增加一个总线控制器及总线仲裁控制器来完成多处理器的分时控制 Intel公司为80868088系列生产8288芯片作为总线控制器,8289芯片作为总线仲裁控制器。,总线控制器8288,8288总线控制器的内部结构及引脚排列如图4.13所示。 8288由状态译码器、命令信号发生器,控制信号发生器及控制电路4部分组成。
45、 由80868088 CPU来的总线状态信号S2,S1及S0经8288的状态译码器译码后,与输入控制信号AEN,CEN和IOB相配合,便产生总线命令和控制信号。,图4.13,8288发出的总线命令信号,MRDC: 相当于最小模式时由80868088发出的RD和IOM两信号的组合,此时IOM=0。 IORC: 相当于最小模式时由80868088发出的RD和IOM两信号的组合,此时IOM=1。 MWTC和AMWC: 相当于最小模式时由80868088发出的WR和IOM两信号的组合,此时IOM=0。但在最大工作模式时增加了一个“超前写存储器信号”AMWC。它比MWTC提前一个时钟周期。,8288发出
46、的总线命令信号,IOWC和AIOWC: 相当于最小模式时WR和IOM两信号的组合,此时IOM=1。也增加了一个“超前写IO端口信号”AIOWC。它比IOWC提前一个时钟周期。 INTA: 中断响应信号INTA在最小模式时由CPU直接发出。 CEN: 当有多片8288协同工作时起片选作用。当命令允许信号CEN为高电平时,允许该8288发出全部控制信号。当CEN为低电平时,禁止该8288发出总线控制信号,同时使DEW和PDEN呈高阻状态。任何时候只有一片8288的CEN信号为高电平。,8288发出的总线命令信号,AEN: 由总线仲裁器8289输入,低电平有效。地址允许信号AEN是支持多总线结构的同
47、步控制信号。 MCEPDEN: 是一条双功能的输出控制线。当8288工作于系统总线方式时,作主控级联允许信号MCE用,在中断响应周期的T1状态时MCE有效,控制主8259A向从8259A输出级联地址。当8288工作于IO总线方式时,作外设数据允许信号PDEN用,控制外部设备通过IO总线传送数据。 IOB: 8288既可控制系统总线,又可控制IO总线。当总线方式控制信号IOB=1时,8288只用来控制IO总线;当IOB=0时,8288工作于系统总线工作方式。,总线仲裁控制器8289,在8086多处理器系统中,除80868088 CPU外还有输入输出处理器8089及数据数值处理器8087,它们也是
48、采用分时方式来占用总线的。因此,在多处理器系统中必须采用总线仲裁器8289配合总线控制器8288来确定每一时刻的总线使用权赋给优先级别较高的处理器使用。 8289芯片的内部结构框图及引脚排列如图4.14所示。8289由状态译码器、仲裁电路、控制电路及总线接口等组成。,图4.14,4种工作方式,IOB及RESB两个控制信号决定 单一总线方式: IOB=1,RESB=0 这时系统中只有一个处理器,8289随时监视着总线状态。只要处理器不处于HALT状态,并且当前BPRN有效及BUSY无效,则这个处理器就可使用总线。 IO总线方式: IOB=0,RESB=0 这时系统中有输入输出处理器8089。主处
49、理器执行系统存储器中的主控程序,8089执行驻留存储器中的IO处理程序,两者可并行操作。,4种工作方式,驻留总线方式: IOB=1,RESB=1 在这种系统中,处理器可访问系统总线也可访问驻留总线。 当SYSBRESB=1时,CPU为访问系统总线上的存储器或IO设备 当SYSBRESB=0时,CPU为请求使用驻留总线。 两条总线上各设一个总线控制器8288,分别来发出各条总线上的访问存储器或IO端口命令。 IO总线和驻留总线方式: IOB=0,RESB=1 8289上SYSBRESB=1,为CPU请求使用系统总线,只访问系统总线上的存储器而不访问IO端口,若需访IO端口时则可使用IO总线进行。,