版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章16位微处理器教学提示:尽管微处理器已进入了Pentium时代,其内部结构和性能也发生了巨大的变化,但其基本结构仍然和早期的8086/8088相似,可以说8086/8088是80X86系列芯片的基础。在本章中,我们就以8086/8088为例介绍微处理器的总体结构。教学要求:通过本章学习,使读者了解8086/8088微处理器的内部结构、引脚和工作方式、存储器组织和工作时序。第一代微处理器:1971年Intel公司推出的4040和8008。它们是采用PMOS工艺的4位及8位微处理器,集成度达到2,000个晶体管/片。第二代微处理器:1974年推出的8080,M6800及Z-80等。它们是采用NMOS工艺的8位微处理器,集成度达到9,000个晶体管/片。第三代微处理器:20世纪70年代后期至80年代中期Intel公司的8086/8088、80186/80286,Motorola公司的M68000和Zilog公司的Z8000等16位微处理器相继问世,它们的运算速度比8位微处理器快2~5倍,采用HMOS高密度工艺,集成度达29000个晶体管/片。第四代微处理器:1985年推出的微处理器80386、M68020、80586以及Pentium系列,集成度达45万个晶体管/片以上。它们是32位微处理器。4.116位微处理器概述
微处理器(microprocessor)是微型计算机的运算及控制部件,也称中央处理单元(CPU)。它本身不构成独立的工作系统,因而它也不能独立地执行程序。通常,微处理器由算术逻辑部件(ALU)、控制部件、寄存器组和片内总线等几部分组成。8086/8088的异同点:相同点:
CPU的内部基本相同,都采用16位字进行操作及存储器寻址,两者的软件完全兼容,程序的执行也完全相同。两种微处理器都封装在相同的40脚双列直插组件(DIP)中。同异点:8086和8088的外部性能有区别。8086是16位数据总线,而8088是8位数据总线,在处理一个16位数据字时,8088需要两步操作而8086只需要一步。4.28086/8088CPU的结构
8086CPU内部结构分成两部分:总线接口部件BIU(businterfaceunit
):
总线接口单元BIU,负责控制存贮器读写。执行部件EU(executionunit
):
执行单元EU从指令队列中取出指令并执行。特点:
取指部分和执行指令部分分开进行,提高了速度。外部总线内部暂存器
IP
ES
SSDSCS输入/输出控制电路执行部分控制电路123456∑ALU标志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令队列缓冲器执行部件(EU)总线接口部件(BIU)16位20位16位8位8086/8088的指令执行过程返回执行部件总线接口部件通用寄存器四个专用寄存器SP:堆栈指针,其内容与堆栈段寄存器SS的内容一起,提供堆栈操作地址。
BP:基址指针:构成段内偏移地址的一部分.
SI:(SourceIndex):SI含有源地址意思,产生有效地址或实际地址的偏移量。
DI:(DestinationIndex):DI含有目的意思,
产生有效地址或实际地址的偏移量。算术逻辑单元ALU:主要是加法器。大部分指令的执行由加法器完成。标志寄存器:16位字利用了9位。标志分两类:状态标志(6位):反映刚刚完成的操作结果情况。控制标志(3位):在某些指令操作中起控制作用。20位地址加法器四个段寄存器:CS、DS、SS、ESCS管理代码段;DS管理数据段SS管理堆栈段;ES管理附加段.16位的指令指针寄存器IP:IP中的内容是下一条指令对现行代码段基地址的偏移量,6字节的指令队列指令队列共六字节,总线接口部件BIU从内存取指令,取来的总是放在指令队列中;执行部件EU从指令队列取指令,并执行。4.2.1执行部件EU
EU功能:(1)从BIU的指令队列缓冲器中取出指令,由EU控制器的指令译码器译码产生相应的操作控制信号给各部件;(2)对操作数进行算术运算和逻辑运算,并将运算结果的状态特征保存到标志(或状态)寄存器FR中;(3)EU不直接与CPU外部系统相连,当需要与主存储器或I/O设备交换数据时,EU向BIU发出命令,并提供给BIU16位有效地址及所需传送的数据。EU的组成:(1)4个通用寄存器,即AX,BX,CX,DX;(2)4个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器
SP,源变址寄存器SI,目的变址寄存器DI;(3)标志寄存器(FR);(4)算术逻辑部件(ALU)。(1)四个16位的通用数据寄存器:通用数据寄存器AX,BX,CX,DX,既可以作16位寄存器使用,也可以分成高、低8位分别作两个8位寄存器使用。16位8位8位
AX→AHAL
BX→
BH
BL
CX→CHCL
DX→DHDL数据寄存器特有的习惯用法AX-累加器:所有I/O指令都通过AX与接口传送信息,中间运算结果也多放于AX中。BX-基址寄存器:在间接寻址中用于存放基地址。CX-计数寄存器:用于在循环或串操作指令中存放计数值。DX-数据寄存器:在间接寻址的I/O指令中存放I/O
端口地址;在32位乘除法运算时,存放高16位数。(2)四个专用寄存器二个指针寄存器:
SP-堆栈指针:其内容与堆栈段寄存器SS的内容相加,提供堆栈操作地址。
BP-基址指针:构成数据段内偏移地址的一部分。二个变址寄存器:
SI-源变址寄存器:SI含有源地址意思,产生有效地址或实际地址的偏移量。
DI-目的变址寄存器:DI含有目的意思,产生有效地址或实际地址的偏移量。SP与BP在应用上的区别:作为通用寄存器,二者均可用于存放数据。作为基址寄存器,用BP表示所寻找的数据在数据段;用SP则表示数据在堆栈段。堆栈及堆栈段的使用堆栈:内存中一个特殊区域,用于存放暂时不用或需要保护的数据常用于响应中断或子程序调用。变址寄存器常用于指令的间接寻址或变址寻址。特别是在串操作指令中,用SI存放源操作数的偏移地址,而用DI存放目标操作数的偏移地址。堆栈堆栈主要用于暂存数据和在过程调用或处理中断时暂存断点信息。
(1)堆栈的概念
堆栈是在存储器中开辟的一片数据存储区,这片存储区的一端固定,另一端活动,且只允许数据从活动端进出。采用“先进后出”的规则
。(2)堆栈的组织堆栈指示器SP,他总是指向堆栈的栈顶,堆栈的伸展方向既可以从大地址向小地址,也可以从小地址向大地址。8086/8088的堆栈的伸展方向是从大地址向小地址。
(1)8086的堆栈及堆栈操作有以下特点
双字节操作。即每次进、出栈的数据均为两字节。且高位字节对应高地址,低位字节对应低地址。无论是源操作数还是目的操作数,也无论是存储器操作数还是寄存器操作数,都必须按这个原则执行。
堆栈向低地址方向生成。数据每次进栈时堆栈指针SP向低地址方向移动(减2);反之,数据出栈时,SP向高地址方向移动(加2)(2)BP、BX都被称为基址指针,但两者用法不同。BP只能寻址堆栈段(段缺省),不允许段跨越;BX可以寻址数据段(段缺省),也可以寻址附加段(段跨越)。(3)由于大多数算术和逻辑运算中又可以使用BP、SP和变址寄存器,因而也将这4个寄存器归入通用寄存器组。使用中应该注意这4个寄存器只能用于16位的存取操作特别说明
(3)算术逻辑单元ALU:
16位二进制加法器。大部分指令的执行由加法器完成。(4)标志寄存器:存放运算结果的特征。16位字利用了9位。
标志分两类:状态标志(6位):(CF,SF,AF,PF,OF,ZF)
反映刚刚完成的操作结果情况。操作在执行后,决定算术逻辑部件ALU处在何种状态,这种状态会影响后面的操作。控制标志(3位):(IF,TF,DF)它是人为设置的,指令系统中有专门的指令用于控制标志的设置和清除,每个控制标志都对每一种特定的功能起控制作用。进位标志CF:
运算结果有进(加)借(减)位,CF=1,否则CF=0;奇偶校验标志PF:结果低8位中1的个数为偶数时,PF=1;否则PF=0辅助进位标志AF:当b3向b4进位或借位时,AF=1;否则AF=0。零标志ZF:
结果为零,ZF=1;否则CF=0;符号标志SF:
与运算结果的最高位相同;溢出标志OF:带符号数的运算结果超出8位或16位数表达范围时,OF=1;否则OF=0。跟踪标志TF:
也称陷阱标志位,当TF=1时,CPU按单步跟踪方式执行指令,常用于程序的单步跟踪调试。中断允许标志IF:
IF=1,允许CPU响应可屏蔽中断;
方向标志DF:当DF=1时,串行操作指令为自动减量指令(从高地址到低地址处理字符),否则串连操作指令为自动增量指令。状态标志位控制标志位D15D0OFDFIFTFSFZFAFPFCF进借位标志奇偶标志半进借位标志零标志符号标志单步中断中断允许方向标志溢出标志1-有进、借位0-无进、借位1-低8位有偶数个10-低8位有奇数个11-低4位向高4位有进、借位0-低4位向高4位无进、借位1-结果为00-结果不为0例:将两数相加,即01001100加01100101,CF、PF、AF、ZF、SF、OF各为何值?
01001100
+01100101
10110001
CF=0,PF=1,AF=1,ZF=0,SF=1,OF=18086/8088的EU有如下特点:(1)4个通用寄存器既可以作为16位寄存器使用,也可以作为8位寄存器使用。(2)AX寄存器也常称为累加器,8086指令系统中有许多指令都是通过累加器的动作来执行的。当累加器作为16位来使用时,可以进行按字乘操作、按字除操作、按字输入/输出和其他字传送等;当累加器作为8位来使用时,可以实现按字节乘操作、按字节除操作、按字节输入/输出和其他字节传送,以及十进制运算等。(3)加法器是算术逻辑的主要部件,绝大部分指令的执行都由加法器来完成。(4)标志寄存器FR共有16位,其中7位未用。4.2.2总线接口部件BIU总线接口部件BIU的功能:
控制存储器IO与CPU的信息传送。(1)BIU从主存取指令送到指令队列缓冲器。(2)CPU执行指令时,总线接口单元要配合EU从指定的主存单元或外设端口中取数据,将数据传送给EU或把EU
的操作结果传送到指定的主存单元或外设端口中。(3)计算并形成访问存储器的20位物理地址。总线接口部件BIU的组成:(1)4个段地址寄存器:用于存放相应逻辑段的段基地址。
CS-16位的代码段寄存器,管理程序段。
DS-16位的数据段寄存器,管理数据段。
ES-16位的扩展段(附加段)寄存器,管理扩展段。
SS-16位的堆栈段寄存器,管理堆栈段。(2)16位指令指针寄存器IP(PC)。(3)20位的地址加法器。(4)六字节的指令队列缓冲器。(1)四个段寄存器:(CS.DS.SS.SS)
由于8086访问内存要20位地址(1MB),而执行单元EU中所有寄存器和数据通道均为16位,只能提供16位地址。
由四个段寄存器的某个段地址或地址偏移,通过地址加法器,形成20位物理地址。①执行单元中各寄存器均为16位,只能寻址216=64KB,利用段寄存器,可以扩大寻址空间为220=1MB。②段寄存器为信息按特征分段存贮带来方便.物理地址=16d
段地址(基址)+偏移地址(2)16位的指令指针寄存器IP:
IP中的内容是下一条指令对现行代码段基地址的偏移量,与段寄存器CS的内容相加,形成取指令的物理地址。(3)20位地址加法器
IP中的内容是下一条指令对现行代码段基地址的偏移量,与段寄存器CS的内容相加,形成取指令的物理地址。例:CS=A000H,代码段可寻址的空间?
CS左移四位:A0000HIP的内容:0000H~FFFFH物理地址:A0000H~AFFFFH例如:段基地址=6000H段首地址偏移地址物理地址代码段60009H00H12H60000H0009H(4)6字节的指令队列
8086指令队列共六字节,8088指令队列共四字节。总线接口部件BIU从内存取指令,取来的总是放在指令队列中,执行部件EU从指令队列取指令并执行。取指令和执行指令是可以在时间上重叠的,即BIU和EU的操作是完全不同步的。利用指令队列可提高CPU的效率,降低对存储器存取速度的要求。BIU取指并存入指令队列缓冲器中以后:①如果EU没有要求对存储器或I/O进行操作,此时如果指令队列缓冲器不满,BIU总是从存储器取后续的指令,并存入队列中;此时如果指令队列缓冲器是满的,BIU进入空闲状态;②如果EU有要求对存储器或I/O进行操作,BIU在下一个周期执行EU所要求的存储器或I/O操作。在执行转移、调用、返回指令时,指令队列的内容将被清除。4.2.3存储器结构8086的存储器组织与I/O组织
8086/8088系统中存储器按字节编址,可寻址的存储器空间为1MB,由于1MB为220,因此每个字节所对应的地址应是20位(二进制数),这20位的地址称为物理地址。
1.存储器的分段
20位的物理地址在CPU内部就应有20位的地址寄存器,而机内的寄存器是16位的(16位机),16位寄存器只能寻址64KB。8086/8088系统中把1M存储空间分成若干个逻辑段,每个逻辑段容量≤64KB,因此1M的存储空间可分成16个逻辑段(0~15)。允许它们在整个存储空间浮动,即段与段之间可以部分重叠、完全重叠、连续排列、断续排列,非常灵活。在整个存储空间中可设置若干个逻辑段,如图4.2所示。对于任何一个物理地址,可以惟一地被包含在一个逻辑段中,也可包含在多个相互重叠的逻辑段中,只要有段地址和段内偏移地址就可以访问到这个物理地址所对应的存储空间,如图4.3所示。
所谓存储器分段技术就是把1MB空间分成若干逻辑段,每个逻辑段的容量≤64KB。段内地址是连续的,段与段之间是互相独立的。逻辑段可以在整个存储空间浮动,即段的排列可以连续、分开、部分重叠或完全重叠,非常灵活。这里所谓的重叠是指存储单元可以分属于不同的逻辑段。图4.2图4.3
在8086/8088存储空间中,把16字节的存储空间称作一节(paragraph)。为了简化操作,要求各个逻辑段从节的整数边界开始,也就是说段首地址低4位应该是“0”,因此就把段首地址的高16位称为“段基址”,存放在段寄存器DS或CS或SS或ES中,段内的偏移地址存放在IP或SP中。若已知当前有效的代码段、数据段、附加段和堆栈段的段基址分别为1055H,250AH,8FFBH和EFF0H,那么它们在存储器中的分布情况如图4.4所示。A段B段C段D段E段40000H50000H60000H70000H连续排列部分重叠完全重叠图4.4
段的分配:存储器0150H1CDOH4200HB000H64K代码64K堆栈64K数据64K附加CSSSDSES2.存储器中的逻辑地址和物理地址任何一个20位物理地址,也称为绝对地址,都是由两部分组成。采用分段结构的存储器中,任何一个逻辑地址由段基址和偏移地址两个部分构成,它们都是无符号的16位二进制数。任何一个存储单元对应一个20位的物理地址,也可称为绝对地址,它是由逻辑地址变换得来的。当CPU需要访问存储器时,必须完成如下的地址运算:物理地址=段基址×16+偏移地址物理地址的形成如图所示,它是通过CPU的总线接口部件BIU的地址加法器来实现的。
∑偏移地址段基址地址加法器物理地址段寄存器15150190
3、8086CPU的存储器接口
1MB空间分为两个512KB的存储体:偶地址存储体:连接D7~D0,A0=0时选通;奇地址存储体:连接D15~D8,BHE=0时选通。
8086可以传送一个字节,也可以传送二个字节(一个字)。SELA19~A1
高8位
5128D7~D0SELA19~A1
低8位
5128D7~D0A19~A1A0BHED15~D8D7~D08086与存储器连接4、8086的I/O组织8086允许64K(65535个)个I/O端口;两个相邻8位端口可组合成一个16位端口;CPU执行访问I/O端口的指令时,产生有效的RD信号或WR信号,同时,M/IO=0,通过外部电路组合成对I/O端口的读写信号。统一编址这种编址方式是将I/O端口和存储单元统一编址,即把I/O端口置于存储器空间,也看作是存储单元。因此,存储器的各种寻址方式均可用来寻址I/O端口。在这种方式下I/O端口操作功能强,使用起来也很灵活,I/O接口与CPU的连接和存储器与CPU的连接相似。但是I/O端口占用了一定的存储空间,而且执行I/O操作时,因地址位数长,速度较慢。独立编址这种编址方法是将I/O端口进行独立编址,I/O端口空间与存储器空间相互独立。这就需要设置专门的输入、输出指令对I/O端口进行操作。8086系统采用的就是这种独立的I/O编址方式。端口地址说明8086使用A15~A0这16根地址线作为I/O端口地址线,可访问端口最多可达64K个8位端口或32K个16位端口。和存储器的字单元一样,对于奇地址的16位端口的访问,要进行两次操作才能完成。16位的I/O端口地址无需经过地址加法器产生,因而不使用段寄存器。从AB总线上发出的端口地址仍为20位,只不过最高四位A19~A16为0。4.2.48086总线的工作周期
在微机系统中,CPU是在时钟信号CLK控制下,按节拍有序地执行指令序列。从取指令开始,经过分析指令、对操作数寻址,然后执行指令、保存操作结果,这个过程称为指令执行周期。
指令周期:执行一条指令所需要的时间。
总线周期(机器周期):CPU通过总线与存储器或I/O接口进行一次数据传输所需的时间,一个最基本的总线周期为4个T状态,即T1、T2、T3、T4。一般为T1、T2、T3、(TW)、T4。
T状态(时钟周期):CPU处理动作的最小单位,CPU的基本时间单位,一个基本时钟又称T状态。
TW状态:在存储器和外设速度较慢时,要在T3之后插入一个或几个等待周期Tw,以使其在数据传送时能与CPU同步。T3状态:AD0~AD15上出现数据。TW状态:若存储器式外设的工作速度较慢,不能满足基本时序要求,使用一个产生READY的电路,以使在T3状态之后,插入一个等待周期TW。T4状态:结束一个总线周期。T1状态:CPU往复用总线A19—A0上发出地址信息,出现ALE信号后,将地址锁存到地址锁存器(8282)。以指出要寻址的存储单元或外设端口的地址。T2状态:
CPU从总线上撤消地址,而使总线的低16位浮置成高阻状态,为传输数据做准备。总线最高四位(A16~A19)用来输出本总线周期状态信息(S6~S3)。这些状态信息用来表示中断允许状态,当前正在使用的段寄存器名等。T3状态:多路总线的高4位继续提供状态信息,而多路总线的低16位(8088则为低8位)上出现由CPU写出的数据或者CPU从存储器或端口读入的数据。TW状态:在有些情况下,被写入数据或者被读取数据的外设或存储器不能及时地配合CPU传送数据。这时,外设或存储器会通过“READY”信号线在T3状态启动之前,向CPU发一个“数据未准备好”信号,于是CPU会在T3之后插入一个或多个附加的时钟周期TW,TW也叫等待状态。在TW状态,总线上的信息情况和T3状态的信息情况一样。T4状态:当指定的存储器或外设完成数据传送时,便在“READY”线上发出“准备好”信号,CPU接收到这一信号后,会自动脱离TW状态而进入T4状态。Ti状态:只有在CPU和内存或I/O接口之间传输数据,以及填充指令队列时,CPU才执行总线周期。如果在一个总线周期之后,不立即执行下一个总线周期,那么系统总线就处在空闲状态,此时,执行空闲周期Ti
。说明:
当CPU不执行总线周期时,总线接口部件不与总线打交道,进入总线空闲周期。此时,CPU内部指令队列已满,且EU单元正在进行有效的内部操作。所以说,总线空操作是总线接口部件对执行部件的等待状态。总线空闲周期由一系列T1构成,基本维持前一总线周期时的状态。如果前一个总线周期为写周期,AD15~AD0的数据仍被继续驱动;如果前一个总线周期为读周期,则AD15~AD0在空闲周期处于高阻状态。最小模式下的总线读操作①高为读内存低为读I/O地址输出状态输出地址输出数据输入④BHE③②⑤⑥⑦⑨⑩11输出DT/RDENALERDAD15~AD0A19/S6~A16/S3BHE/S7M/IOCLKT1T2T3Tw(1+n)T4⑧最小模式下的总线写周期操作AD15~AD0T1T2T3TwT4CLKM/IOA19/S6~A16/S3BHE/S7ALEWRDT/RDEN高为写内存低为写I/O地址输出状态输出地址输出数据输出④BHE⑩⑤⑨③⑧②②①⑥⑦输出4.38086/8088CPU的引脚信号和工作模式
为了尽可能适应各种使用场合,在设计8086/8088CPU芯片时,就使得它们可以在两种模式下工作,即最小模式和最大模式。所谓最小模式,就是在系统中只有8086/8088一个微处理器。在这种系统中,所有的总线控制信号都直接由8086/8088产生,因此,系统中的总线控制逻辑电路被减到最少。最大模式是相对最小模式而言,它用在中等规模的或者大型的8086/8088系统中。在此系统中,包含两个或多个微处理器,其中一个主处理器就是8086/8088,其他的处理器称为协处理器,它们是协助主处理器工作的。和8086/8088配合的协处理器有两个,一个是数值运算协处理器8087,一个是输入/输出协处理器8089。
8087是一种专用于数值运算的处理器,它能实现多种类型的数值操作。例如,高精度的整数和浮点运算,也可以进行超越函数的计算。在系统中加入协处理器8087之后,会提高系统的数值运算速度。8089在原理上有点儿像带有两个DMA通道的处理器。它有一套专门用于输入/输出操作的指令系统,但8089又和DMA的控制器不同,它可以直接为输入/输出设备服务,使8086/8088不再承担这类工作。所以在系统中增加协处理器8089后,会提高主处理器的效率,尤其是在输入输出频繁的场合。8086/8088的工作模式完全是由硬件决定的。4.3.18086/8088的引脚信号和功能地址/数据线地址/数据线非屏蔽中断可屏蔽中断最小最大模式控制MN/MX=1,最小模式MN/MX=0,最大模式读信号总线保持请求信号总线保持相应信号写信号存储器/IO控制信号M/IO=1,选中存储器M/IO=0,选中IO接口数据发送/接收信号DT/R=1,发送DT/R=0,接收数据允许信号地址允许信号中断相应信号测试信号:执行WAIT指令,CPU处于空转等待;TEST有效时,结束等待状态。准备好信号:表示内存或I/O设备准备好,可以进行数据传输。复位信号AD15~AD0(addressdatabus)地址/数据复用引脚(双向工作)
特性:
双向,三态。地址/数据线:分时复用;T1状态:AD15~AD0为地址信号;
T2、T3、TW、T4状态:数据信号.
在8088中,A8~A15并不作复用,它们只用来输出地址,称为A8~A15。在8086中,作为复用引脚,在总线周期的T1状态用来输出要访问的存储器或I/O端口地址。T2~T4状态,对读周期来说,处于浮空状态;对写周期来说,则是传输数据。注意:
在8086系统中,特别要注意,一般常将AD0信号作为低8位数据的选通信号,因为,每当CPU和偶地址单元或偶地址端口交换数据时,在T1状态,AD0引脚传送的地址信号必定为低电平;在其他状态,则用来传送数据。而CPU的传输特性决定了只要是偶地址单元或偶地址端口交换数据,那么,CPU必定通过总线低8位,即AD7~AD0传输数据。可见,如果在总线周期的T1状态,AD0为低电平,实际上就指示了在这一总线周期的其余状态中,CPU将用总线低8位和偶地址单元或偶地址端口交换数据。因此,AD0和下面讲到的BHE类似,可以用来作为接于数据总线低8位上的8位外设接口芯片的选通信号。
AD15~AD0在CPU响应中断,以及系统总线“保持响应”时,都被浮置为高阻状态。2.A19/S6~A16/S3(address/status)地址/状态复用引脚(输出)
T1状态:
A19~A16为地址的高四位,
T2、T3、TW、T4状态:为状态信号。
S6=0,8086CPU连在总线上;
S5:中断允许标志设置:
S5=0,允许可屏蔽中断请求;
S5=1,禁止可屏蔽中断请求。
S4S3:指出当前正在使用哪段寄存器。说明:
A19/S6~A16/S3在总线周期的T1状态,用来输出地址的最高4位。在总线周期的T2,T3,TW和T4状态时,用来输出状态信息。其中,S6为0,用来指示8086/8088当前与总线相连,所以在T2,T3,TW和T4状态时,8086/8088总是使S6等于0,以表示8086/8088当前连在总线上。S5表明中断允许标志的当前设置,若为1,表示当前允许可屏蔽中断请求;若为0,则禁止一切可屏蔽中断。S4,S3合起来指出当前正在使用哪段寄存器。
S4S3
00使用ES01使用SS10使用CS11使用DS3.BHE/S7(bushighenable/status)高8位数据总线允许/状态复用引脚(输出)在总线周期的T1状态,8086在BHE/S7引脚输出BHE信号,表示高8位数据总线D15~D8上的数据有效。在T2,T3,TW和T4状态,BHE/S7引脚输出状态信号S7。不过,在当前的芯片(8086,8086-1,8086-2)设计中,S7并未被赋予任何实际意义。在8088系统中,第34脚不是BHE/S7,而是被赋予另外的信号。在最大模式时,此引脚恒为高电平;在最小模式中,则为SS0,它和DT/R,M/IO一起决定了8088芯片当前总线周期的读/写动作。BHEA0
操作所使用的数据引脚00从偶地址开始读/写一个字AD15~AD010从偶地址开始读/写一个字节AD7~AD001从奇地址开始读/写一个字节AD15~AD810从偶地址开始读/写一个字(需要两个周期完成,第一个周期将低8位数据送AD15~AD8,第二个周期将高8位数据送AD7~AD0)AD15~AD8AD7~AD011无存取操作4.NMI(non-maskableinterrupt)非屏蔽中断引脚(输入)
非屏蔽中断信号是一个由低到高的上升沿。这类中断不受中断标志IF的影响,也不能用软件进行屏蔽。每当NMI端进入一个正沿触发信号时,CPU就会在结束当前指令后,进入对应于中断类型号为2的非屏蔽中断处理程序。5.INTR(interruptrequest)可屏蔽中断请求信号引脚(输入)
可屏蔽中断请求信号为高电平有效,CPU在执行每条指令的最后一个时钟周期会对INTR信号进行采样,如果CPU中的中断允许标志为1,并且又接收到INTR信号,那么,CPU就会在结束当前指令后,响应中断请求,进入一个中断处理子程序。6.RD(read)读信号引脚(输出)
此信号指出将要执行一个对内存或I/O端口的读操作。到底是读取内存单元中的数据还是I/O端口中的数据,这决定于M/IO信号。在一个执行读操作的总线周期中,RD信号在T2,T3和TW状态均为低电平。在系统总线进入“保持响应”期间,RD引脚被浮置为高阻状态。7.CLK(clock)时钟引脚(输入)
8086/8088要求时钟信号的占空比为33%,即1/3周期为高电平,2/3周期为低电平。8086/8088的时钟频率要求为5MHz,8086-1的时钟频率为10MHz,8086-2的时钟频率则为8MHz,时钟信号为CPU和总线控制逻辑电路提供定时手段。8.RESET(reset)复位信号引脚(输入)
复位信号为高电平有效。8086/8088要求复位信号至少维持4个时钟周期的高电平才有效。复位信号来到后,CPU便结束当前操作,并对处理器标志寄存器、IP,DS,SS,ES及指令队列清零,而将CS设置为FFFFH。当复位信号变为低电平时,CPU从FFFF0H开始执行程序。寄存器内容状态标志寄存器F清零指令指针IP0000H代码段寄存器CSFFFFH数据段寄存器DS0000H堆栈段寄存器SS0000H附加段寄存器ES0000H指令流队列清空9.READY(ready)“准备好”信号引脚(输入)“准备好”信号实际上是由所访问的存储器或I/O设备发来的响应信号,高电平有效。“准备好”信号有效时,表示内存或I/O设备准备就绪,马上就可进行一次数据传输。CPU在每个总线周期的T3状态开始对READY信号进行采样。如果检测到READY为低电平,则在T3状态之后插入等待状态TW,在TW状态,CPU也对READY进行采样,若READY仍为低电平,则会继续插入TW,所以TW可以插入一个或多个。直到READY变为高电平后,才进入T4状态,完成数据传送过程,从而结束当前总线周期。10.TEST(test)测试信号引脚(输入)
测试信号为低电平有效。TEST信号是和指令WAIT结合起来使用的,在CPU执行WAIT指令时,CPU处于空转状态进行等待;当8086的TEST信号有效时,等待状态结束,CPU继续往下执行被暂停的指令。11.MN/MX(minimum/maximummodecontrol)最小/最大模式控制信号引脚(输入)
它是最大模式及最小模式的选择控制端。此引脚固定接为+5V时,CPU处于最小模式;如果接地,则CPU处于最大模式。12.GND地和Vcc电源引脚
8086/8088均用单一+5V电源。
8086/8088CPU的第24脚~第31脚在最大模式和最小模式下有不同的名称和定义。4.3.2最小工作模式
当8086/8088的第33脚MN/MX固定接到+5V时,就处于最小工作模式,最小模式下第24脚~第31脚的信号含义如下:
1.INTA(interruptacknowledge)中断响应信号(输出)
在最小模式下,第24脚作为中断响应信号的输出端,用来对外设的中断请求作出响应。对于8086/8088来讲,INTA信号实际上是位于连续周期中的两个负脉冲,在每个总线周期的T2,T3和TW状态,INTA端为低电平。第1个负脉冲通知外部设备的接口,它发出的中断请求已经得到允许;外设接口收到第2个负脉冲后,往数据总线上放中断类型码,从而CPU便得到了有关此中断请求的详尽信息。2.ALE(addresslatchenable)地址锁存允许信号(输出)
第25脚在最小模式下为地址锁存允许信号输出端,这是8086/8088提供给地址锁存器8282/8283的控制信号,高电平有效。在任何一个总线周期的T1状态,ALE输出有效电平,以表示当前在地址/数据复用总线上输出的是地址信息,地址锁存器将ALE作为锁存信号,对地址进行锁存。要注意ALE端不能被浮空。3.DEN(dataenable)数据允许信号(输出)
第26脚在最小模式下作为数据允许信号输出端。在用8286/8287作为数据总线收发器时,DEN为收发器提供了一个控制信号,表示CPU当前准备发送或接受一个数据。总线收发器将DEN作为输出允许信号。DEN信号的电平输出情况如下:在每个存储器访问周期和I/O访问周期为低电平,即有效电平;在中断响应周期,也为有效电平。不过,如果是读周期或者是中断响应周期,DEN在T2状态的中间开始有效,并且一直保持到T4状态的中间。在DMA方式时,DEN被浮置为高阻状态。4.DT/R(datatransmit/receive)数据收发(输出)
在使用8286/8287作为数据总线收发器时,DT/R信号用来控制8286/8287的数据传送方向。如果DT/R为高电平,则进行数据发送;如果DT/R为低电平,则进行数据接收。在DMA方式时,DT/R被浮置为高阻状态。5.M/IO(memory/inputandoutput)存储器/输入/输出控制信号(输出)
此信号若为高电平,表示CPU和存储器之间进行数据传输;若为低电平,表示CPU和输入/输出设备之间进行数据传输。一般在前一个总线周期的T4状态,M/IO就成为有效电平,然后开始一个新的总线周期。在此周期中,M/IO一直保持有效电平,直到本周期的T4状态为止。在DMA方式时,M/IO被浮置为高阻状态。6.WR(write)写信号(输出)此信号为低电平有效。WR有效时,表示CPU当前正在进行存储器或I/O写操作,具体到底为哪种写操作,则由M/IO信号决定。对任何写周期,WR只在T2,T3,TW期间有效。在DMA方式时,WR被浮置为高阻状态。7.HOLD(holdrequest)总线保持请求信号(输入)
当系统中CPU之外的另一个主模块要求占用总线时,就在当前总线周期完成时,于T4状态从HLDA引脚发出一个回答信号,对刚才的HOLD请求作出响应。同时,CPU使地址/数据总线和控制状态线处于浮空状态。总线请求部件收到HLDA信号后,就获得了总线控制权,在此后一段时间,HOLD和HLDA都保持高电平。在总线占有部件用完总线之后,会把HOLD信号变为低电平,这样,CPU又获得了地址/数据总线和控制状态线的占有权。8.HLDA(holdacknowledge)总线保持响应信号(输出)
此信号为高电平有效。当HLDA有效时,表示CPU对其他主部件的总线请求作出响应,与此同时,所有与三态门相接的CPU的引脚呈现高阻抗,从而让出了总线。
在最小模式下,8088和8086的第34脚的信号定义不同。对8086来说,第34脚为BHE/S7,由于S7未被赋予实际意义,所以,此引脚就是用来提供高8位数据总线允许信号。对8088来说,对外只有8位数据总线,没有高8位数据总线,因而也不需要BHE信号。所以,第34脚不再是BHE/S7,而叫SS0。SS0,M/IO(在8088中,第28脚上不是M/IO,而是M/IO)和DT/R组合起来,决定了当前总线周期的操作。除了各引脚的信号名称和含义以外,我们还要了解最小模式下系统是怎样配置的。即除了CPU外,还需要哪些芯片来构成一个按照最小模式工作的系统?这些芯片和CPU之间的主要连接关系是什么样的?
在8086的最小模式中,硬件包括:1片8284A,作为时钟发生器;3片8282或74LS373,用来作为地址锁存器;当系统中所连的存储器和外设较多时,需要增加数据总线的驱动能力,这时,要用两片8286/8287作为总线收发器。8284A时钟发生器8284A的振荡源一般采用晶体振荡器,也可以用外接脉冲发生器作为振荡源。此时,8284A的F/端应接高电平。8284A输出的时钟频率为振荡源频率的1/3。8284A的功能有3个:①产生恒定的时钟信号;②对准备信号(READY);③复位信号(RESET)进行同步。
外界控制信号RDY及RES信号可以在任何时候到来,8284A能把它们同步在时钟后沿(下降沿)时输出READY及RESET信号到8086CPU。三态缓冲器(三态门)具有单向导通和三态的特性T为低平时:输出为高阻抗(三态)T为高电平时:输出为输入的反相TAF表示反相或低电平有效TAFTAFTAF74LS244双4位单向缓冲器分成4位的两组每组的控制端连接在一起控制端低电平有效输出与输入同相每一位都是一个三态门,每4个三态门的控制端连接在一起双向三态缓冲器具有双向导通和三态的特性ABTOE*OE*=0,导通
T=1A→BT=0A←BOE*=1,不导通Intel82868位双向缓冲器控制端连接在一起,低电平有效可以双向导通输出与输入同相OE*=0,导通
T=1A→BT=0A←BOE*=1,不导通每一位都是一个双向三态门,8位具有共同的控制端74LS2458位双向缓冲器控制端连接在一起,低电平有效可以双向导通输出与输入同相E*=0,导通
DIR=1A→BDIR=0A←BE*=1,不导通74LS245与Intel8286功能一样74LS273具有异步清零的TTL上升沿锁存器每一位都是一个D触发器,8个D触发器的控制端连接在一起Intel8282具有三态输出的TTL电平锁存器STB电平锁存引脚OE*输出允许引脚每一位都是一个三态锁存器,8个三态锁存器的控制端连在一起74LS373具有三态输出的TTL电平锁存器LE电平锁存引脚OE*输出允许引脚74LS373与Intel8282功能一样译码器74LS13812345678910111213141516ABCE1E2E3Y7GNDY6Y5Y4Y3Y2Y1Y0Vcc74LS138引脚图Y0Y1Y2Y3Y4Y5Y6Y7E3E2E1CBA74LS138原理图功能连接74LS138连接示例E3E2E1CBAY0Y1Y2Y3Y4Y5Y6Y774LS138+5VA19A18A17A16A15GND74LS138功能表片选输入编码输入输出E3E2*E1*CBAY7*~Y0*10000011111110(仅Y0*有效)00111111101(仅Y1*有效)01011111011(仅Y2*有效)01111110111(仅Y3*有效)10011101111(仅Y4*有效)10111011111(仅Y5*有效)11010111111(仅Y6*有效)11101111111(仅Y7*有效)非上述情况×××11111111(全无效)最小模式下的连接示意图
8088CPU••控制总线数据总线地址总线地址锁存数据收发ALE时钟发生器8086在最小模式下的典型配置最小组态总线形成
(Intel产品手册推荐电路)RESETTESTHOLDHLDANMIINTRINTAM/IOWRRDREADYCLKREADYMN/MX+5V控制总线地址总线A19~
A0数据总线D15~D0
ALEA19~A16AD15~AD
0
DT/RDEN8086CPUSTB
8282OETOE82868284A系统总线8286与8088的连接4.3.3最大工作模式
最大工作模式:8086/8088CPU为实现多处理器控制系统(多主控系统)就要增设总线控制器
8288和总线仲裁器8289。实现方法:8086/8088的MN/MX引脚接地。8086在最大模式下的典型配置:1、MN/MX接地;2、一片8284,作系统时钟;3、三片8282或74LS373,作锁存器;4、二片8286/8287,作数据收发器;5、一片8288,作总线控制器;6、一片8259。8086在最大模式下的典型配置最大模式与最小模式的差别:最小模式:
MN/MX接+5V,只有8086一个CPU;控制信号由CPU产生。最大模式
MN/MX接地,除8086一个主CPU外,还有一个以上协处理器,需要总线控制器来变换和组合控制信号。最大工作模式时8086/8088第24~31引脚的信号含义为:1.QS1和QS0(instructionqueuestatus)指令队列状态信号(输出):
在最大工作模式时,第24引脚及第25引脚作为QS1及QS0信号输出端,这两个信号提供总线周期的前一个状态中指令队列的状态。
QS1QS0
含义
00无操作
01将指令首字节送入指令队列
10队列为空
11将指令其余字节送指令队列2.S2,S1及S0(buscyclestatus)总线周期状态信号(输出)
在最大工作模式时,第26引脚,第27引脚及第28引脚为S0,S1及S2信号输出端。它们提供当前总线周期中所进行的数据传输过程类型。由总线控制器8288根据这些信号对存储器及I/O进行控制。
S2S1S0操作过程8288产生信号
000发中断响应信号INTA001读I/O端口IORC010写I/O端口IOWC.AIOWC011暂停无
100取指令MRDC101读存储器MRDC110写存储器MWTC.AMWC111无作用无总线周期状态(S2,S1及S0)中至少应有一个状态为低电平,便可进行一种总线操作。当S2,S1及S0都为高电平时表明操作过程即将结束,而另一个新的总线周期尚未开始,这时称为“无源状态”。而在总线周期的最后一个状态(即T4状态),S2,S1及S0中只要有一个信号改变,就表明是下一个新的总线周期开始。3.LOCK(lock)总线封锁信号(输出)
在最大工作模式时,第29引脚为总线封锁信号输出端。当LOCK为低电平时,其它总线主控部件都不能占用总线。在DMA期间,LOCK端被浮空而处于高阻状态。
LOCK信号由指令前缀LOCK产生,在LOCK前缀后的一条指令执行完后,便撤销LOCK信号,为防止8086/8088中断时总线被其他主控部件所占用,因此在中断过程中,LOCK信号也自动变为低电平。
RQ/GT1,RQ/GT0(request/grant)总线请求信号(输入)/总线请求允许信号(输出)
在最大工作模式时,第30引脚及第31引脚分别为总线请求信号输入端/总线请求允许信号输出端,可供CPU以外两个协处理器用来发出使用总线请求和接收CPU对总线请求信号的回答信号。这两个应答信号都是双向的。RQ/GT0的优先级比RQ/GT1的高。在最大工作模式下,8086的第34引脚为BHE/S7,而8088的第34引脚恒为高电平。由于最大工作模式是以8086CPU为中心的多处理器控制系统,它们共用一条外部总线,因而需要增加一个总线控制器及总线仲裁控制器来完成多处理器的分时控制,Intel公司为8086/8088系列生产8288芯片作为总线控制器,8289芯片作为总线仲裁控制器。1.总线控制器8288
8288总线控制器的内部结构及引脚排列。
8288由状态译码器、命令信号发生器,控制信号发生器及控制电路4部分组成。由8086/8088CPU来的总线状态信号S2,S1及S0经8288的状态译码器译码后,与输入控制信号AEN,CEN和IOB相配合,便产生总线命令和控制信号。
8288产生的ALE,DT/R及DEN信号与最小模式工作方式时相同,但DEN信号的极性相反。8288产生的总线命令是由8086/8088的总线状态信号S2,S1及S0所决定。8288总线控制器的连接地址总线数据总线AD19~AD0A19~A0D15~D0A19~A0D15~D08288发出的总线命令信号具有以下功能:MRDC:
相当于最小模式时由8086/8088发出的RD和IO/M两信号的组合,此时IO/M=0。(2)IORC:
相当于最小模式时由8086/8088发出的RD和IO/M两信号的组合,此时IO/M=1。(3)MWTC和AMWC:
相当于最小模式时由8086/8088发出的WR和
IO/M两信号的组合,此时IO/M=0。但在最大工作模式时增加了一个“超前写存储器信号”AMWC。它比MWTC提前一个时钟周期。(4)IOWC和AIOWC:相当于最小模式时WR和IO/M两信号的组合,此时IO/M=1。也增加了一个“超前写I/O端口信号”AIOWC。它比IOWC提前一个时钟周期。(5)INTA:中断响应信号INTA在最小模式时由CPU直接发出。(6)CEN:当有多片8288协同工作时起片选作用。当命令允许信号CEN为高电平时,允许该8288发出全部控制信号。当CEN为低电平时,禁止该8288发出总线控制信号,同时使DEW和PDEN呈高阻状态。任何时候只有一片8288的CEN信号为高电平。(7)AEN:由总线仲裁器8289输入,低电平有效。地址允许信号AEN是支持多总线结构的同步控制信号。(8)MCE/PDEN:是一条双功能的输出控制线。当8288工作于系统总线方式时,作主控级联允许信号MCE用,在中断响应周期的T1状态时MCE有效,控制主8259A向从8259A输出级联地址。当8288工作于I/O总线方式时,作外设数据允许信号PDEN用,控制外部设备通过I/O总线传送数据。(9)IOB:
8288既可控制系统总线,又可控制I/O总线。当总线方式控制信号IOB=1时,8288只用来控制I/O总线;当IOB=0时,8288工作于系统总线工作方式。8288提供了两种工作方式,由IOB——I/O总线工作方式信号决定:
当IOB接地,8288适用于单处理器系统,称作系统总线方式,此时,还要求AEN接地,CEN接+5V。当IOB接+5V,且CEN接+5V,8288则适合工作于多处理器系统,称作局部总线方式。2.总线仲裁控制器8289
在8086多处理器系统中,除8086/8088CPU外还有输入/输出处理器8089及数据数值处理器8087,它们也是采用分时方式来占用总线的。因此,在多处理器系统中必须采用总线仲裁器8289配合总线控制器8288来确定每一时刻的总线使用权赋给优先级别较高的处理器使用。
8289由状态译码器、仲裁电路、控制电路及总线接口等组成。8289芯片的内部结构框图及引脚排列如图。总线仲裁器8289的工作方式如下:(1)单一总线方式:当IOB=1及RESB=0时,8289工作于单一总线方式。这时系统中只有一个处理器,8289随时监视着总线状态。只要处理器不处于HALT状态,并且当前BPRN有效及BUSY无效,则这个处理器就可使用总线。(2)I/O总线方式:当IOB=0及RESB=0时,8289工作于I/O总线方法。这时系统中都有输入/输出处理器8089。主处理器执行系统存储器中的主控程序,8089执行驻留存储器中的I/O处理程序,两者可并行操作。(3)驻留总线方式:当IOB=1及RESB=1时,8289工作于驻留总线方式。在这种系统中,处理器可访问系统总线也可访问驻留总线。SYSB/RESB=1时,CPU为访问系统总线上的存储器或I/O设备,当SYSB/RESB=0时,CPU为请求使用驻留总线。但两条总线上各设一个总线控制器8288,分别来发出各条总线上的访问存储器或I/O端口命令。(4)I/O总线和驻留总线方式:当IOB=0及RESB=1时,8289上SYSB/RESB=1,为CPU请求使用系统总线,只访问系统总线上的存储器而不访问I/O端口,若需访I/O端口时则可使用I/O总线进行。除总线仲裁控制器有4种工作方式外,在多处理器系统中,8289还要进行优先级的裁决。8289优先级的裁决:
在不同系统中可采用3种优先权裁决方式,即并行优先级裁决、串行优先级裁决及循环优先级裁决。并行优先级裁决:
并行优先级裁决的典型电路如图4.15所示。所有8289的总线请求BREQ信号并行引入优先级编码器,它将当前级别最高的BREQ的二进制编码向译码器输出。译码器将相应的总线优先级输入(BPRN)信号送至当前级别最高的8289。若当前B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅游业务赋能增长
- 旅游业绩超越预期
- 2025年智能制造园区厂房拆迁补偿及产业布局协议4篇
- 个人投资企业资产转让协议版A版
- 2025柴油终端零售居间合作协议书4篇
- 2025年度茶叶产品研发与技术转移合同4篇
- 2025年度海上风电场建设分包工程合同4篇
- 2025年度教育培训课程定制合同书4篇
- 专业服装面料供应协议范本版B版
- 二零二四二手设备购买与维修合同2篇
- 2024-2025学年成都高新区七上数学期末考试试卷【含答案】
- 定额〔2025〕1号文-关于发布2018版电力建设工程概预算定额2024年度价格水平调整的通知
- 2025年浙江杭州市西湖区专职社区招聘85人历年高频重点提升(共500题)附带答案详解
- 《数学广角-优化》说课稿-2024-2025学年四年级上册数学人教版
- “懂你”(原题+解题+范文+话题+技巧+阅读类素材)-2025年中考语文一轮复习之写作
- 2025年景观照明项目可行性分析报告
- 2025年江苏南京地铁集团招聘笔试参考题库含答案解析
- 2025年度爱读书学长参与的读书项目投资合同
- 电力系统分析答案(吴俊勇)(已修订)
- 化学-河北省金太阳质检联盟2024-2025学年高三上学期12月第三次联考试题和答案
- 期末复习试题(试题)-2024-2025学年四年级上册数学 北师大版
评论
0/150
提交评论