单击此处编辑母版标题样式(2).ppt_第1页
单击此处编辑母版标题样式(2).ppt_第2页
单击此处编辑母版标题样式(2).ppt_第3页
单击此处编辑母版标题样式(2).ppt_第4页
单击此处编辑母版标题样式(2).ppt_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第4章16位微处理器,4.1 16位微处理器概述 4.2 8086/8088 CPU的结构 4.3 8086/8088 CPU的引脚信号和工作模式 4.4 8086/8088的主要操作功能 习题,微处理器(microprocessor)是微型计算机的运算及控制部件,也称中央处理单元(CPU)。它本身不构成独立的工作系统,因而它也不能独立地执行程序。通常,微处理器由算术逻辑部件(ALU)、控制部件、寄存器组和片内总线等几部分组成,这些都已在前面几章中讲过了。 第一代微处理器是1971年Intel公司推出的4040和8008。它们是采用PMOS工艺的4位及8位微处理器,只能进行串行的十进制运算,集

2、成度达到2,000个晶体管片,用在各种类型的计算器中已经完全能满足要求。,4.1 16位微处理器概述,第二代微处理器是1974年推出的8080,M6800及Z-80等。它们是采用NMOS工艺的8位微处理器,集成度达到9,000个晶体管片。在许多要求不高的工业生产和科研开发中已可运用。这些8位微处理器构成的计算机系统对许多算术运算和其他操作都必须编制程序。例如,即使是乘法和除法这样基本的运算都必须用子程序来实现。由于每次只能处理8位数据,处理大量数据就要分成许多个8位字节进行操作,数值越大或越小,计算时间都很长,这对数量大的数据库、文字处理或实时控制等应用来说就太慢了。用提高时钟频率可弥补这一局

3、限,但也是很有限度的。此外,8位微处理器的寻址能力也有局限。典型8位微处理器有一条16位地址线,因此最多可寻址64K个存储单元,对于具有大量数据的大型复杂程序都可能是不够的。,20世纪70年代后期,超大规模集成电路(VLSI)投入使用,出现了第三代微处理器。Intel公司的80868088,Motorola公司的M68000和Zilog公司的Z8000等16位微处理器相继问世,它们的运算速度比8位微处理器快25倍,采用HMOS高密度工艺,集成度达29 000个晶体管片,赶上或超过了20世纪70年代小型机的水平。从此,传统的小型计算机受到严峻的挑战。 20世纪80年代以来,Intel公司又推出了

4、高性能的16位微处理器80186及80286。它们与80868088向上兼容。80286是为满足多用户和多任务系统的微处理器,速度比8086快56倍。处理器本身包含存储器管理和保护部件,支持虚拟存储体系。,1985年,第四代微处理器80386及M68020推出市场,集成度达45万个晶体管片。它们是32位微处理器,时钟频率达40MHz,速度之快、性能之高,足以同高档小型机相匹敌。 总之,20世纪70年代至今,微处理器的发展是其他许多技术领域望尘莫及的,如1989年推出了80486,1993年推出了Pentium及80586等更高性能的32位及64位微处理器,它也促进了其他技术的进步。 本章以讲解

5、16位80868088微处理器为中心,第11章再介绍80386,80486及Pentium等芯片的原理。因为它们是当今许多流行的微型计算机,如IBM PC及许多兼容机联想,同方,COMPAQ等个人计算机的CPU。,8086和8088 CPU的内部基本相同,但它们的外部性能是有区别的。8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据字时,8088需要两步操作而8086只需要一步。 8086和8088 CPU的内部都采用16位字进行操作及存储器寻址,两者的软件完全兼容,程序的执行也完全相同。然而,由于8088要比8086有较多的外部存取操作,所以,对相同的程序,它将执行得较

6、慢。这两种微处理器都封装在相同的40脚双列直插组件(DIP)中。,图4.1,4.2 80868088 CPU的结构,8086 CPU从功能上可分为两部分,即总线接口部件(bus interface unit,缩写为BIU)和执行部件EU(execution unit)。8086的内部结构如图4.1所示。,4.2.1 执行部件,执行部件(EU)的功能就是负责指令的执行。将指令译码并利用内部的寄存器和ALU对数据进行所需的处理。 从结构图4.1中,可见到执行部件由下列部分组成: (1) 4个通用寄存器,即AX,BX,CX,DX; (2) 4个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源

7、变址寄存器SI,目的变址寄存器DI; (3) 标志寄存器(FR); (4) 算术逻辑部件(ALU)。 80868088的EU有如下特点:,(1) 4个通用寄存器既可以作为16位寄存器使用,也可以作为8位寄存器使用。当BX寄存器作为8位寄存器时,分为BH和BL,BH为高8位,BL为低8位。 (2) AX寄存器也常称为累加器,8086指令系统中有许多指令都是通过累加器的动作来执行的。当累加器作为16位来使用时,可以进行按字乘操作、按字除操作、按字输入输出和其他字传送等;当累加器作为8位来使用时,可以实现按字节乘操作、按字节除操作、按字节输入输出和其他字节传送,以及十进制运算等。 (3) 加法器是算

8、术逻辑的主要部件,绝大部分指令的执行都由加法器来完成。 (4) 标志寄存器FR共有16位,其中7位未用,所用的各位含义如下:,根据功能,8086的标志可分为两类:状态标志它是操作在执行后,决定算术逻辑部件ALU处在何种状态,这种状态会影响后面的操作。控制标志它是人为设置的,指令系统中有专门的指令用于控制标志的设置和清除,每个控制标志都对每一种特定的功能起控制作用。 状态标志有6个,即SF,ZF,PF,CF,AF和OF。,4.2.2 总线接口部件BIU,总线接口部件的功能是负责与存储器、IO端口传送数据,即BIU管理在存储器中存取程序和数据的实际处理过程。 总线接口部件由下列各部分组成: (1)

9、 4个段地址寄存器,即 CS16位代码段寄存器; DS16位数据段寄存器; ES16位附加段寄存器; SS16位堆栈段寄存器。 (2) 16位指令指针寄存器IP。 (3) 20位的地址加法器。 (4) 6字节的指令队列。 80868088的BIU有如下特点:,(1) 8086的指令队列为6个字节,8088的指令队列为4个字节。不管是8086还是8088,都会在执行指令的同时,从内存中取下一条指令或下几条指令,取来的指令就放在指令队列中。这样,一般情况下,CPU执行完一条指令就可以立即执行下一条指令,而不需要像以往的计算机那样,让CPU轮番进行取指令和执行指令的操作,从而提高了CPU的效率。 (

10、2) 地址加法器用来产生20位地址。上面已经提到,8086可用20位地址寻址1M字节的内存空间,但8086内部所有的寄存器都是16位的,所以需要由一个附加的机构来根据16位寄存器提供的信息计算出20位的物理地址,这个机构就是20位的地址加法器。,例如,一条指令的物理地址就是根据代码段寄存器CS和指令指针寄存器IP的内容得到的。具体计算时,要将段寄存器的内容左移4位,然后再与IP的内容相加。假设CS=0FE00H,IP=0400H,此时指令的物理地址为0FE400H。 总线接口部件和执行部件并不是同步工作的,它们是按以下流水线技术原则管理: (1) 每当8086的指令队列中有两个空字节,或者80

11、88的指令队列中有一个空字节时,总线接口部件就会自动把指令取到指令队列中。 (2) 每当执行部件准备执行一条指令时,它会从总线接口部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,,如果必须访问存储器或者输入输出设备,那么,执行部件就会请求总线接口部件,进入总线周期,完成访问内存或者输入输出端口的操作;如果此时总线接口部件正好处于空闲状态,那么,会立即响应执行部件的总线请求。但有时会遇到这样的情况,执行部件请求总线接口部件访问总线时,总线接口部件正在将某个指令字节取到指令队列中,此时总线接口部件将首先完成这个取指令的总线周期,然后再去响应执行部件发出的访问总线

12、的请求。 (3) 当指令队列已满,而且执行部件又没有总线访问时,总线接口部件便进入空闲状态。 (4) 在执行转移指令、调用指令和返回指令时,下面要执行的指令就不是在程序中紧接着的那条指令了,,而总线接口部件往指令队列装入指令时,总是按顺序进行的,这样,指令队列中已经装入的字节就没有用了。遇到这种情况,指令队列中的原有内容被自动消除,总线接口部件会接着往指令队列中装入另一个程序段中的指令。,4.2.3 存储器结构,80868088系统中存储器按字节编址,可寻址的存储器空间为1MB,由于1MB为220,因此每个字节所对应的地址应是20位(二进制数),这20位的地址称为物理地址。 1. 存储器的分段

13、 20位的物理地址在CPU内部就应有20位的地址寄存器,而机内的寄存器是16位的(16位机),16位寄存器只能寻址64KB。80868088系统中把1M存储空间分成若干个逻辑段,每个逻辑段容量64KB,因此1M的存储空间可分成16个逻辑段(015)。允许它们在整个存储空间浮动,即段与段之间可以部分重叠、完全重叠、连续排列、断续排列,非常灵活。在整个存储空间中可设置若干个逻辑段,如图4.2所示。,图4.2,对于任何一个物理地址,可以惟一地被包含在一个逻辑段中,也可包含在多个相互重叠的逻辑段中,只要有段地址和段内偏移地址就可以访问到这个物理地址所对应的存储空间,如图4.3所示。,图4.3,在808

14、68088存储空间中,把16字节的存储空间称作一节(paragraph)。为了简化操作,要求各个逻辑段从节的整数边界开始,也就是说段首地址低4位应该是“0”,因此就把段首地址的高16位称为“段基址”,存放在段寄存器DS或CS或SS或ES中,段内的偏移地址存放在IP或SP中。 若已知当前有效的代码段、数据段、附加段和堆栈段的段基址分别为1055H,250AH,8FFBH和EFF0H,那么它们在存储器中的分布情况如图4.4所示。,图4.4,2. 存储器中的逻辑地址和物理地址 任何一个20位物理地址,也称为绝对地址,都是由两部分组成。 采用分段结构的存储器中,任何一个逻辑地址由段基址和偏移地址两个部

15、分构成,它们都是无符号的16位二进制数。 任何一个存储单元对应一个20位的物理地址,也可称为绝对地址,它是由逻辑地址变换得来的。当CPU需要访问存储器时,必须完成如下的地址运算: 物理地址=段基址16+偏移地址 物理地址的形成如图4.5所示,它是通过CPU的总线接口部件BIU的地址加法器来实现的。,图4.5,例如,代码段寄存器CS=2000H,指令指针寄存器存放的是偏移地址IP=2200H,存储器的物理地址为20000H+2200H=22200H。 我们可以把每一个存储单元看成是具有两种类型的地址:物理地址和逻辑地址。物理地址就是实际地址,它具有20位的地址值,并是惟一标识1MB存储空间的某一

16、个字节的地址。逻辑地址由段基址和偏移地址组成。程序以逻辑地址编址,而不是用物理地址。 4个段寄存器分别指向4个现行可寻址的分段的起始字节单元。一般指令程序存放在代码段中,段地址来源于代码段寄存器,偏移地址来源于指令指针IP。当涉及到一个堆栈操作时,段地址寄存器为SS,,偏移地址来源于栈指针寄存器SP。当涉及到一个操作数时,则由数据段寄存器DS或附加段寄存器ES作为段寄存器,而偏地址是由16位偏移量得到。16位偏移量可以是指令中的偏移量加上16位地址寄存器的值组成,取决于指令的寻址方式。,图4.6,4.2.4 8086总线的工作周期,为了取得指令和传送 数据的协调工作,就需要CPU的总线接口部件

17、执行一个总线周期。在80868088中,一个最基本的总线周期由4个时钟周期组成,时钟周期是CPU的基本时间计量单位,它由计算机主频决定。例如,8086的主频为10MHz,一个时钟周期就是100ns。在一个最基本的总线周期中,常将4个时钟周期分别称为4个状态,即T1状态、T2状态、T3状态、T4状态。典型的8086总线周期序列见图4.6。,CPU往多路复用总线上发出地址信息,以指出要寻址的存储单元或外设端口的地址。 CPU从总线上撤消地址,而使总线的低16位浮置成高阻状态,为传输数据做准备。总线的最高四位(A16A19)用来输出本总线周期状态信息。这些状态信息用来表示中断允许状态,当前正在使用的

18、段寄存器名等。 多路总线的高4位继续提供状态信息,而多路总线的低16位(8088则为低8位)上出现由CPU写出的数据或者CPU从存储器或端口读入的数据。 在有些情况下,被写入数据或者被读取数据的外设或存储器不能及时地配合CPU传送数据。这时,外设或存储器会通过“READY”信号线在T3状态启动,之前,向CPU发一个“数据未准备好”信号,于是CPU会在T3之后插入一个或多个附加的时钟周期TW,TW也叫等待状态。在TW状态,总线上的信息情况和T3状态的信息情况一样。当指定的存储器或外设完成数据传送时,便在“READY”线上发出“准备好”信号,CPU接收到这一信号后,会自动脱离TW状态而进入T4状态

19、。 只有在CPU和内存或IO接口之间传输数据,以及填充指令队列时,CPU才执行总线周期。可见,如果在一个总线周期之后,不立即执行下一个总线周期,那么系统总线就处在空闲状态,此时,执行空闲周期。,在空闲周期中,可以包含一个或多个时钟周期。在这期间,高4位上,CPU仍然驱动前一个总线周期的状态信息,而且,如果前一个总线周期为写周期,那么,CPU会在总线低16位上继续驱动数据信息;如果前一个总线周期为读周期,则在空闲周期中,总线低16位处于高阻状态。,4.3 80868088 CPU的引脚信号和工作模式,为了尽可能适应各种使用场合,在设计80868088CPU芯片时,就使得它们可以在两种模式下工作,

20、即最小模式和最大模式。 所谓最小模式,就是在系统中只有80868088一个微处理器。在这种系统中,所有的总线控制信号都直接由80868088产生,因此,系统中的总线控制逻辑电路被减到最少。 最大模式是相对最小模式而言,它用在中等规模的或者大型的80868088系统中。在此系统中,包含两个或多个微处理器,其中一个主处理器就是80868088,其他的处理器称为协处理器,它们是协助主处理器工作的。和80868088配合的协处理器有两个,一个是数值运算协处理器8087,一个是输入输出协处理器8089。,8087是一种专用于数值运算的处理器,它能实现多种类型的数值操作。例如,高精度的整数和浮点运算,也可

21、以进行超越函数(如:三角函数、对数函数)的计算。由于在通常情况下,这些运算往往通过软件方法来实现,而8087是用硬件方法来完成这些运算的,所以在系统中加入协处理器8087之后,会提高系统的数值运算速度。 8089在原理上有点儿像带有两个DMA通道的处理器。它有一套专门用于输入输出操作的指令系统,但8089又和DMA的控制器不同,它可以直接为输入输出设备服务,使80868088不再承担这类工作。所以在系统中增加协处理器8089后,会提高主处理器的效率,尤其是在输入输出频繁的场合。 80868088的工作模式完全是由硬件决定的。,4.3.1 80868088的引脚信号和功能,8086和8088的引

22、脚信号图如图4.7所示。 1. AD15AD0(address data bus)地址数据复用引脚(双向工作) 在8088中,A8A15并不作复用,它们只用来输出地址,称为A8A15。 作为复用引脚,在总线周期的T1状态用来输出要访问的存储器或IO端口地址。T2T3状态,对读周期来说,处于浮空状态;对写周期来说,则是传输数据。,图4.7,在8086系统中,特别要注意,一般常将AD0信号作为低8位数据的选通信号,因为,每当CPU和偶地址单元或偶地址端口交换数据时,在T1状态,AD0引脚传送的地址信号必定为低电平;在其他状态,则用来传送数据。而CPU的传输特性决定了只要是偶地址单元或偶地址端口交换

23、数据,那么,CPU必定通过总线低8位,即AD7AD0传输数据。可见,如果在总线周期的T1状态,AD0为低电平,实际上就指示了在这一总线周期的其余状态中,CPU将用总线低8位和偶地址单元或偶地址端口交换数据。因此,AD0和下面讲到的BHE类似,可以用来作为接于数据总线低8位上的8位外设接口芯片的选通信号。 AD15AD0在CPU响应中断,以及系统总线“保持响应”时,都被浮置为高阻状态。,2. A19S6A16/S3(address/status)地址/状态复用引脚(输出) A19/S6A16/S3在总线周期的T1状态,用来输出地址的最高4位。在总线周期的T2,T3,TW和T4状态时,用来输出状态

24、信息。其中,S6为0,用来指示80868088当前与总线相连,所以在T2,T3,TW和T4状态时,80868088总是使S6等于0,以表示80868088当前连在总线上。S5表明中断允许标志的当前设置,若为1,表示当前允许可屏蔽中断请求;若为0,则禁止一切可屏蔽中断。S4,S3合起来指出当前正在使用哪段寄存器。,3. BHES7(bus high enable/status)高8位数据总线允许状态复用引脚(输出) 在总线周期的T1状态,8086在BHES7引脚输出BHE信号,表示高8位数据总线D15D8上的数据有效。在T2,T3,TW和T4状态,BHES7引脚输出状态信号S7。不过,在当前的芯

25、片(8086,8086-1,8086-2)设计中,S7并未被赋予任何实际意义。 在8088系统中,第34脚不是BHE7S7,而是被赋予另外的信号。在最大模式时,此引脚恒为高电平;在最小模式中,则为SS0,它和DTR,MIO一起决定了8088芯片当前总线周期的读写动作。,4. NMI(non-maskable interrupt)非屏蔽中断引脚(输入) 非屏蔽中断信号是一个由低到高的上升沿。这类中断不受中断标志IF的影响,也不能用软件进行屏蔽。每当NMI端进入一个正沿触发信号时,CPU就会在结束当前指令后,进入对应于中断类型号为2的非屏蔽中断处理程序。 5. INTR(interrupt req

26、uest)可屏蔽中断请求信号引脚(输入) 可屏蔽中断请求信号为高电平有效,CPU在执行每条指令的最后一个时钟周期会对INTR信号进行采样,如果CPU中的中断允许标志为1,并且又接收到INTR信号,那么,CPU就会在结束当前指令后,响应中断请求,进入一个中断处理子程序。,6. RD(read)读信号引脚(输出) 此信号指出将要执行一个对内存或IO端口的读操作。到底是读取内存单元中的数据还是IO端口中的数据,这决定于MIO信号。在一个执行读操作的总线周期中,RD信号在T2,T3和TW状态均为低电平。在系统总线进入“保持响应”期间,RD引脚被浮置为高阻状态。 7. CLK(clock)时钟引脚(输入

27、) 80868088要求时钟信号的占空比为33%,即13周期为高电平,23周期为低电平。80868088的时钟频率要求为5MHz,8086-1的时钟频率为10MHz,8086-2的时钟频率则为8MHz,时钟信号为CPU和总线控制逻辑电路提供定时手段。,8. RESET(reset)复位信号引脚(输入) 复位信号为高电平有效。80868088要求复位信号至少维持4个时钟周期的高电平才有效。复位信号来到后,CPU便结束当前操作,并对处理器标志寄存器、IP,DS,SS,ES及指令队列清零,而将CS设置为FFFFH。当复位信号变为低电平时,CPU从FFFF0H开始执行程序。 9. READY(read

28、y)“准备好”信号引脚(输入) “准备好”信号实际上是由所访问的存储器或IO设备发来的响应信号,高电平有效。“准备好”信号有效时,表示内存或IO设备准备就绪,马上就可进行一次数据传输。CPU在每个总线周期的T3状态开始对READY信号进行采样。如果检测到READY为,低电平,则在T3状态之后插入等待状态TW,在TW状态,CPU也对READY进行采样,若READY仍为低电平,则会继续插入TW,所以TW可以插入一个或多个。直到READY变为高电平后,才进入T4状态,完成数据传送过程,从而结束当前总线周期。 10. TEST(test)测试信号引脚(输入) 测试信号为低电平有效。TEST信号是和指令

29、WAIT结合起来使用的,在CPU执行WAIT指令时,CPU处于空转状态进行等待;当8086的TEST信号有效时,等待状态结束,CPU继续往下执行被暂停的指令。,11. MNMX(minimummaximum mode control)最小最大模式控制信号引脚(输入) 它是最大模式及最小模式的选择控制端。此引脚固定接为+5V时,CPU处于最小模式;如果接地,则CPU处于最大模式。 12. GND地和Vcc电源引脚 80868088均用单一+5V电源。 80868088CPU的第24脚第31脚在最大模式和最小模式下有不同的名称和定义。,4.3.2 最小工作模式,当80868088的第33脚MNMX

30、固定接到+5V时,就处于最小工作模式,最小模式下第24脚第31脚的信号含义如下: 1. INTA(interrupt acknowledge)中断响应信号(输出) 在最小模式下,第24脚作为中断响应信号的输出端,用来对外设的中断请求作出响应。对于80868088来讲,INTA信号实际上是位于连续周期中的两个负脉冲,在每个总线周期的T2,T3和TW状态,INTA端为低电平。第1个负脉冲通知外部设备的接口,它发出的中断请求已经得到允许;外设接口收到第2个负脉冲后,往数据总线上放中断类型码,从而CPU便得到了有关此中断请求的详尽信息。,2. ALE(address latch enable)地址锁存

31、允许信号(输出) 第25脚在最小模式下为地址锁存允许信号输出端,这是80868088提供给地址锁存器82828283的控制信号,高电平有效。在任何一个总线周期的T1状态,ALE输出有效电平,以表示当前在地址数据复用总线上输出的是地址信息,地址锁存器将ALE作为锁存信号,对地址进行锁存。要注意ALE端不能被浮空。 3. DEN(data enable)数据允许信号 第26脚在最小模式下作为数据允许信号输出端。在用82868287作为数据总线收发器时,DEN为收发器提供了一个控制信号,表示CPU当前准备发送或接受一个数据。总线收发器将DEN作为输出允许信号。,DEN信号的电平输出情况如下:在每个存

32、储器访问周期和IO访问周期为低电平,即有效电平;在中断响应周期,也为有效电平。不过,如果是读周期或者是中断响应周期,DEN在T2状态的中间开始有效,并且一直保持到T4状态的中间。在DMA方式时,DEN被浮置为高阻状态。 4. DTR(data transmitreceive)数据收发(输出) 在使用82868287作为数据总线收发器时,DTR信号用来控制82868287的数据传送方向。如果DTR为高电平,则进行数据发送;如果DTR为低电平,则进行数据接收。在DMA方式时,DTR被浮置为高阻状态。,5. MIO(memory/input and output)存储器输入输出控制信号(输出) 此信

33、号若为高电平,表示CPU和存储器之间进行数据传输;若为低电平,表示CPU和输入输出设备之间进行数据传输 。一般在前一个总线周期的T4状态,MIO就成为有效电平,然后开始一个新的总线周期。在此周期中,MIO一直保持有效电平,直到本周期的T4状态为止。在DMA方式时,MIO被浮置为高阻状态。 6. WR(write)写信号(输出) 此信号为低电平有效。WR有效时,表示CPU当前正在进行存储器或IO写操作,具体到底为哪种写操作,则由MIO信号决定。对任何写周期,WR只在T2,T3,TW期间有效。在DMA方式时,WR被浮置为高阻状态。,7. HOLD(hold request)总线保持请求信号(输入)

34、 当系统中CPU之外的另一个主模块要求占用总线时,就在当前总线周期完成时,于T4状态从HLDA引脚发出一个回答信号,对刚才的HOLD请求作出响应。同时,CPU使地址数据总线和控制状态线处于浮空状态。总线请求部件收到HLDA信号后,就获得了总线控制权,在此后一段时间,HOLD和HLDA都保持高电平。在总线占有部件用完总线之后,会把HOLD信号变为低电平,这样,CPU又获得了地址数据总线和控制状态线的占有权。 8. HLDA(hold acknowledge)总线保持响应信号(输出) 此信号为高电平有效。当HLDA有效时,表示CPU对其他主部件的总线请求作出响应,与此同时,所有与三态门相接的CPU

35、的引脚呈现高阻抗,从而让出了总线。,在最小模式下,8088和8086的第34脚的信号定义不同。对8086来说,第34脚为BHES7,由于S7未被赋予实际意义,所以,此引脚就是用来提供高8位数据总线允许信号。对8088来说,对外只有8位数据总线,没有高8位数据总线,因而也不需要BHE信号。所以,第34脚不再是BHES7,而叫SS0。SS0,MIO(在8088中,第28脚上不是MIO,而是IO)和DTR组合起来,决定了当前总线周期的操作。 关于无源状态的含义要在“4.3.3最大工作模式”时再作说明。 除了各引脚的信号名称和含义以外,我们还要了解最小模式下系统是怎样配置的。即除了CPU外,,还需要哪

36、些芯片来构成一个按照最小模式工作的系统?这些芯片和CPU之间的主要连接关系是什么样的? 图4.8是8086在最小模式下的典型配置。由图4.8可看到,在8086的最小模式中,硬件包括:1片8284A,作为时钟发生器;3片8282或74LS373,用来作为地址锁存器;当系统中所连的存储器和外设较多时,需要增加数据总线的驱动能力,这时,要用两片82868287作为总线收发器。,图4.8,在总线周期的前一部分时间,CPU总是送出地址信号,为了告诉地址已经准备好,可以被锁存,CPU此时会送出高电平的ALE信号,所以,ALE就是允许锁存的信号。 除了地址信号外,BHE信号也需要锁存。在后面的时序图上,将看

37、到地址数据总线是复用的,而BHE和S7(在当前芯片设计中,S7未被赋予意义)也是复用的,所以在总线周期前一部分时间中输出的是地址信号和BHE信号。在总线周期的后一部分时间中改变了含义,因为有了锁存器对地址和BHE进行锁存,所以在总线周期的后半部分,地址和数据同时出现在系统的地址总线和数据总线上;同样,此时BHE也在锁存器输出端呈现有效电平,于是,确保了CPU对锁存器和IO设备的正常读写操作。,8282是典型的锁存器芯片,不过它是8位的,而80868088系统采用20位地址,加上BHE信号,所以,需要3片8282作为地址锁存器。74LS373也可作为地址锁存器,用法与8282相同。 对于有些只配

38、备64KB内存的小系统,只用16位地址就够了,如果CPU又采用8088,这样,就不存在BHE信号。所以,此时只需两片8282做锁存器。 下面以8282为例简要讲述一下锁存器的信号连接,具体连线图如图4.9所示。,图4.9,8282的选通信号输入端STB和CPU的ALE端相连。以第1个锁存器为例,8282的DI7DI0接CPU的AD7AD0,8282的输出DO7DO0就是系统地址总线的低8位。OE为输出允许信号,当OE为低电平时,8282的输出信号DO7DO0有效;而当OE为高电平时,DO7DO0变为高阻抗。在不带DMA控制器的80868088单处理器系统中,将OE接地就行了。 如果用74LS3

39、73作为锁存器,使用方法和8282几乎一样。只是在74LS373中,芯片选通信号不用STB表示,而用LE表示,这实际上更符合锁存功能的含义。 当一个系统中所含的外设接口较多时,数据总线上需要有发送器和接收器来增加驱动能力。发送器和接收器简称为收发器,也常常称为总线驱动器。,Intel系统芯片的典型收发器为8286,是8位的。所以,在数据总线为8位的8088系统中,只用1片8286就可以构成数据总线收发器,而在数据总线为16位的8086系统中,则要用两片8286。 从图4.10中,可以看到8286具有两组对称的数据引线:A7A0为输入数据线,B7B0为输出数据线。当然,由于在收发器中数据是双向传

40、输的,所以,实际上输入线和输出线也可以交换。用T表示的引脚信号就是用来控制数据传输方向的。当T=1时,就使A7A0为输入线,B7B0为输出线;当T=0时,则使B7B0为输入线。在系统中,T端和CPU和DTR端相连,DTR为数据收发信号。当CPU进行数据输出时,DTR为高电平,于是数据流由A7A0输入,从B7B0输出。当CPU进行数据输入时,DTR为低电平,于是数据流由B7B0输入,而从A7A0输出。,OE是输出允许信号,此信号决定了是否允许数据通过8286。当OE=1时,数据在两个方向上都不能传输。只有当OE=0时,并且T也为1,才使数据从A7A0流向B7B0;同样,只有当OE=0时,并且T也

41、为0,才使数据从B7B0流向A7A0。在80868088系统中,OE端和CPU的DEN端相连,在介绍引脚信号时,我们讲过,在CPU的存储器访问周期和IO访问周期中,DEN为低电平,在中断响应周期,DEN也为低电平。正是在这些总线周期中,需要8286开启,以允许数据通过,从而完成了CPU和其他部件之间的数据传输。,图4.10,需要提到的一点是,当系统中CPU以外的总线主控部件对总线有请求,并且得到CPU允许时,CPU的DEN和DTR端呈现高阻状态,从而使8286各输出端也成为高阻状态。 有时候,在设计系统总线时,希望提供给各部件数据信号的相位正好和CPU的原始数据信号相反;反过来也一样,也就是需

42、要将外部数据信号反一个相位再提供给CPU。为了满足这种要求,Intel公司又提供了另一个功能和8286相仿的芯片8287。在这样的系统中,一般对地址信号也要求反一个相位,这时,地址锁存器就不用8282,而是采用Intel公司的另一个芯片8283,其功能和8282相仿,但提供的输出信号相位相反。,通常,在一个工作于最小模式的系统中,控制线并不需要用总线收发器进行驱动。当然,如果系统中存储器和外设接口芯片多,出于需要,也可以使用总线收发器。 最小模式系统中,信号MIO,RD和WR组合起来决定了系统中数据传输的方式。 在8086最小模式典型配置中,除上述8282及8286外,还有一个时钟发生器828

43、4A。它与CPU的连接如图4.11所示。 8284A的功能有3个:产生恒定的时钟信号,对准备信号(READY)及复位信号(RESET)进行同步。由图4.8可见 ,外界控制信号RDY及RES信号可以在任何时候到来,8284A能把它们同步在时钟后沿(下降沿)时输出READY及RESET信号到8086CPU。,8284A的振荡源一般采用晶体振荡器,如图4.11所示。但也可以用外接脉冲发生器作为振荡源。此时,8284A的F端应接高电平。8284A输出的时钟频率为振荡源频率的13。,图4.11,4.3.3 最大工作模式,80868088CPU为实现多处理器控制系统(多主控系统)就要增设总线控制器8288

44、和总线仲裁器8289。最大工作模式的典型配置如图4.12所示。这时,80868088的MNMX引脚接地。,图4.12,最大工作模式时,80868088的第2431引脚的信号含义如下: 1. QS1和QS0(instruction queue status)指令队列状态信号(输出) 在最大工作模式时,第24引脚及第25引脚作为QS1及QS0信号输出端,这两个信号提供总线周期的前一个状态中指令队列的状态。 2. S2,S1及S0(bus cycle status)总线周期状态信号(输出) 在最大工作模式时,第26引脚,第27引脚及第28引脚为S0,S1及S2信号输出端。它们提供当前总线周期中所进行

45、的数据传输过程类型。由总线控制器8288根据这些信号对存储器及IO进行控制。,总线周期状态(S2,S1及S0)中至少应有一个状态为低电平,便可进行一种总线操作。当S2,S1及S0都为高电平时表明操作过程即将结束,而另一个新的总线周期尚未开始,这时称为“无源状态”。而在总线周期的最后一个状态(即T4状态),S2,S1及S0中只要有一个信号改变,就表明是下一个新的总线周期开始。 3. LOCK(lock)总线封锁信号(输出) 在最大工作模式时,第29引脚为总线封锁信号输出端。当LOCK为低电平时,其它总线主控部件都不能占用总线。在DMA期间,LOCK端被浮空而处于高阻状态。 LOCK信号由指令前缀

46、LOCK产生,在LOCK前缀后的一条指令执行完后,便撤销LOCK信号,为防,止80868088中断时总线被其他主控部件所占用,因此在中断过程中,LOCK信号也自动变为低电平。 4. RQGT1,RQGT0(requestgrant)总线请求信号(输入)总线请求允许信号(输出) 在最大工作模式时,第30引脚及第31引脚分别为总线请求信号输入端总线请求允许信号输出端,可供CPU以外两个协处理器用来发出使用总线请求和接收CPU对总线请求信号的回答信号。这两个应答信号都是双向的。RQGT0的优先级比RQGT1的高。 在最大工作模式下,8086的第34引脚为BHES7,而8088的第34引脚恒为高电平。

47、由于最大工作模式是以8086 CPU为中心的多处理器控制系统,它们共,用一条外部总线,因而需要增加一个总线控制器及总线仲裁控制器来完成多处理器的分时控制,Intel公司为80868088系列生产8288芯片作为总线控制器,8289芯片作为总线仲裁控制器。 1. 总线控制器8288 8288总线控制器的内部结构及引脚排列如图4.13所示。8288由状态译码器、命令信号发生器,控制信号发生器及控制电路4部分组成。由80868088 CPU来的总线状态信号S2,S1及S0经8288的状态译码器译码后,与输入控制信号AEN,CEN和IOB相配合,便产生总线命令和控制信号。,图4.13,8288产生的A

48、LE,DTR及DEN信号与最小模式工作方式时相同,但DEN信号的极性相反。8288产生的总线命令是由80868088的总线状态信号S2,S1及S0所决定。 8288发出的总线命令信号具有以下功能: (1) MRDC: 相当于最小模式时由80868088发出的RD和IOM两信号的组合,此时IOM=0。 (2) IORC: 相当于最小模式时由80868088发出的RD和IOM两信号的组合,此时IOM=1。 (3) MWTC和AMWC: 相当于最小模式时由80868088发出的WR和IOM两信号的组合,此时IOM=0。但在最大工作模式时增加了一个“超前写存储器信号”AMWC。它比MWTC提前一个时钟

49、周期。,(4) IOWC和AIOWC: 相当于最小模式时WR和IOM两信号的组合,此时IOM=1。也增加了一个“超前写IO端口信号”AIOWC。它比IOWC提前一个时钟周期。 (5) INTA: 中断响应信号INTA在最小模式时由CPU直接发出。 (6) CEN: 当有多片8288协同工作时起片选作用。当命令允许信号CEN为高电平时,允许该8288发出全部控制信号。当CEN为低电平时,禁止该8288发出总线控制信号,同时使DEW和PDEN呈高阻状态。任何时候只有一片8288的CEN信号为高电平。 (7) AEN: 由总线仲裁器8289输入,低电平有效。地址允许信号AEN是支持多总线结构的同步控

50、制信号。,(8) MCEPDEN: 是一条双功能的输出控制线。当8288工作于系统总线方式时,作主控级联允许信号MCE用,在中断响应周期的T1状态时MCE有效,控制主8259A向从8259A输出级联地址。当8288工作于IO总线方式时,作外设数据允许信号PDEN用,控制外部设备通过IO总线传送数据。 (9) IOB: 8288既可控制系统总线,又可控制IO总线。当总线方式控制信号IOB=1时,8288只用来控制IO总线;当IOB=0时,8288工作于系统总线工作方式。 2. 总线仲裁控制器8289 在8086多处理器系统中,除80868088CPU外还有输入输出处理器8089及数据数值处理器8

51、087,,它们也是采用分时方式来占用总线的。因此,在多处理器系统中必须采用总线仲裁器8289配合总线控制器8288来确定每一时刻的总线使用权赋给优先级别较高的处理器使用。 8289芯片的内部结构框图及引脚排列如图4.14所示。8289由状态译码器、仲裁电路、控制电路及总线接口等组成。,图4.14,8289的IOB及RESB两控制信号可组成总线仲裁器的4种工作方式如下: (1) 单一总线方式: 当IOB=1及RESB=0时,8289工作于单一总线方式。这时系统中只有一个处理器,8289随时监视着总线状态。只要处理器不处于HALT状态,并且当前BPRN有效及BUSY无效,则这个处理器就可使用总线。

52、 (2) IO总线方式: 当IOB=0及RESB=0时,8289工作于IO总线方法。这时系统中都有输入输出处理器8089。主处理器执行系统存储器中的主控程序,8089执行驻留存储器中的IO处理程序,两者可并行操作。,(3) 驻留总线方式: 当IOB=1及RESB=1时,8289工作于驻留总线方式。在这种系统中,处理器可访问系统总线也可访问驻留总线。SYSBRESB=1时,CPU为访问系统总线上的存储器或IO设备,当SYSBRESB=0时,CPU为请求使用驻留总线。但两条总线上各设一个总线控制器8288,分别来发出各条总线上的访问存储器或IO端口命令。 (4) IO总线和驻留总线方式: 当IOB

53、=0及RESB=1时,8289上SYSBRESB=1,为CPU请求使用系统总线,只访问系统总线上的存储器而不访问IO端口,若需访IO端口时则可使用IO总线进行。 除总线仲裁控制器有4种工作方式外,在多处理器系统中,8289还要进行优先级的裁决。在不同系统,中可采用3种优先权裁决方式,即并行优先级裁决、串行优先级裁决及循环优先级裁决。 (1) 并行优先级裁决。并行优先级裁决的典型电路如图4.15所示。所有8289的总线请求BREQ信号并行引入优先级编码器,它将当前级别最高的BREQ的二进制编码向译码器输出。译码器将相应的总线优先级输入(BPRN)信号送至当前级别最高的8289。若当前BUSY为高

54、电平,则该8289可使用系统总线,并立即将BUSY置成低电平,来禁止其他8289再使用系统总线。,图4.15,(2) 串行优先级裁决方式。串行优先级裁决的典型电路如图4.16所示。图中4个8289按优先级的顺序,把它们上一级的BPRO与下一级BPRN链接起来,优先级最高的8289的BPRN端接地。在总线空闲时,所有的BPRO及BPRN端均为低电平。当任何一个8289要求使用系统总线时,只要它的BPRN=0,且当前BUSY=1,即表示比它优先级高的8289未申请使用总线,则它便可获得系统总线使用权。当这个8289使用总线后,即输出BPRO为1,将比它低的所有8289的BPRN置成高电平,禁止它们

55、再使用总线,串行优先级裁决方式不需要增加任何设备,但响应速度受到限制。要求从最高优先级的8289输出BPRO到最低优先级的BPRN输入的延迟时间不超过一个总线时钟周期。在BCLK频率为10MHz时,最多允许链接3片8289。,图4.16,(3) 循环优先级裁决方式。循环优先级裁决电路与并行方式相似。当该8289取得一次使用系统总线权后,就把最低优先权赋给这一级,把最高优先级赋给原来比它低一级的8289。这种裁决方式能使各个8289具有平等使用总线的权利,因此称做循环优先级裁决。,4.4 80868088的主要操作功能,一个微型机系统要完成各种任务,其中有一些操作是最基本的。本节讲解以下几项80

56、86的主要操作: 系统的复位和启动操作; 总线操作; 中断操作; 最小工作模式下的总线请求; 最大工作模式下的读写操作。,4.4.1 系统的复位和启动操作,80868088的复位和启动操作是在RESET引脚上加上触发信号来执行的,如图4.17所示。 当RESET引脚接受到高电平后的第1个时钟周的正跳变,即图4.17的时,80868088进入内部RESET阶段。再过一个时钟周期,所有三态输出线就被设置成高阻状态,并且一直维持高阻状态,直到RESET信号回到低电平。但在进入高阻状态的前半个时钟周期,也就是在前一个时钟周期的低电平期间(如图4.17所示),这些三态输出线被设置成无作用状态。等到时钟信

57、号又成为高电平时,三态输出线才进入高阻状态。,三态输出线包括AD15AD0,A19/S6A16/S3,BHES7,MIO,DTR,DEN,WR,RD和INTA。还有几条非三态输出线,在复位之后会处于无效状态,但不浮空,它们是ALE,HLDA,RQGT0,RQGT1,QS0,QS1。 80868088要求复位信号(RESET)至少有4个时钟周期的高电平,如果是初次加电的启动,则要求有大于50s的高电平。当80868088进入内部RESET时,CPU就结束现行操作,维持在复位状态。,在复位的时候,代码段寄存器CS和指令指针寄存器IP分别初始化为FFFFH和0000H。所以,80868088在复位之

58、后再重新启动时,便从内存的FFFF0H处开始执行指令,使系统在启动时,能自动进入系统程序。在复位时,由于标志寄存器被清零,即所有标志位都被清除了,因而,系统程序在启动时,总是要通过指令来设置各有关标志。复位信号RESET从高电平到低电平的跳变会触发CPU内部的一个复位逻辑电路,经过7个时钟周期之后,CPU就被启动而恢复正常工作,即从FFFF0H处开始执行程序。,图4.17,4.4.2 总线操作,80868088 CPU中各单元之间以及与外设的数据交换,都是通过总线来进行的。总线操作有两种情况,即总线读操作及总线写操作。总线读操作指CPU从存储器或外设端口读取数据。总线写操作指CPU把数据写入存

59、储器或外设端口。 下面将讲述80868088在最小工作模式下的总线读及总线写操作。 1. 最小工作模式下的总线读操作 80868088最小工作模式总线读操作的时序如图4.18(a)。,图4.18,一个基本的读操作周期包含4个状态,即T1,T2,T3和T4。在存储器和外设速度较慢时,要在T3之后插入一个或几个等待状态TW。 (1) T1状态: 为了从存储器或IO端口读出数据,首先要用MIO信号指出CPU是要从内存还是IO端口读,所以,MIO信号在T1状态成为有效(见图4.18(a)中的)。如果是从存储器读数据,则MIO为高;如果是从IO端口读数据,则MIO为低。MIO信号的有效电平一直保持到整个总线周期的结束即T4状态。 此外,CPU要指出所读取的存储单元或IO端口的地址。8086的20位地址信号是通过多路复用总线输出的,高4位地址通过地址状态线A19/S6A16/S3,送出,低16位地址通过地址数据线AD15AD0送出。在T1状态的开始,20位地

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论