x第2章_8086_微处理器及总线.ppt_第1页
x第2章_8086_微处理器及总线.ppt_第2页
x第2章_8086_微处理器及总线.ppt_第3页
x第2章_8086_微处理器及总线.ppt_第4页
x第2章_8086_微处理器及总线.ppt_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

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

文档简介

1,第二章微处理器和总线,主要内容一、8086/8088微处理器功能结构二、8086/8088的存储器即I/O组织三、8086/8088引脚及功能四、8086/8088的总线与时序五、8086/8088系统配置,2,第二章微处理器和总线,透彻理解与熟练掌握8086/8088内部组成结构、寄存器结构与总线周期等。深入理解存储器的分段设计。正确理解与熟练掌握物理地址和逻辑地址关系。理解堆栈及其操作。理解“段加偏移”寻址机制。,3,Intel系列CPU一直占着主导地位。Intel8086/8088、Z8000和MC68000为代表的16位微处理器是第3代产品,其性能已达到中、高档小型计算机的水平。8086/8088后续的80286、80386、80486以及Pentium系列CPU结构与功能已经发生很大变化,但从基本概念与结构以及指令格式上来讲,仍然是经典8086/8088CPU的延续与提升。其它系列流行的CPU(如AMD公司的6X86MX/M等)也与80 x86CPU兼容。,前言(一),4,8086是Intel系列的16位微处理器。8086采用HMOS工艺,集成2.9万个晶体管,单一的+5V电源,40条引脚,双列直插式封装,时钟频率510MHz,最快的指令执行时间为0.4s。8086有16根数据线,20根地址线,寻址1MB的存储单元和64KB的I/O端口。,8088是准16位微处理器。内部寄存器、运算器以及内部数据总线都是16位,但外部数据总线为8条。,前言(二),5,从功能上讲,可分为两个独立的部分,并行重叠操作:,CPU内部结构(一),6,总线接口单元(BusInterfaceUnit,BIU):,执行单元(ExecutionUnit,EU):,BIU从内存预取指令送到指令队列缓冲器;CPU执行指令时,BIU配合EU对指令的内存单元或I/O端口存取数据。,负责执行指令,即,执行的指令从BIU的指令队列缓冲器中取得;指令执行的结果或所需要的数据,由EU向BIU发出请求;再由BIU对存储器或I/O端口进行存取。,负责完成CPU与存储器或I/O设备之间的数据传送。即,CPU内部结构(二),7,EU与BIU,当EU从指令队列中取走指令,指令队列出现空字节时,BIU就自动执行一次取指令周期,从内存中取出后续的指令代码放入队列中;当EU需要数据时,BIU根据EU给出的地址,从指定的内存单元或外设中取出数据供EU使用;在运算结束时,BIU将运算结果送入指定的内存单元或外设;如果指令队列为空,EU就等待;若BIU正在取指令,EU发出访问总线的请求,则必须等BIU取指令完毕后,该请求才能得到相应;一般情况下,程序顺序执行,当遇到跳转指令时,BIU就使指令队列复位,从新地址取出指令,并立即传给EU执行。,8,4个16位段地址寄存器代码段寄存器(CodeSegment):取得CPU所执行的指令。数据段寄存器(DataSegment):存放程序所使用的数据。堆栈段寄存器(StackSegment):堆栈操作的执行地址在此段中。附加段寄存器(ExtraSegment):也用来存放数据。,6字节指令队列缓冲器16位指令指针寄存器IP(InstructionPointer)20位地址加法器总线控制器,总线接口单元组成,9,用于存放预取的指令。8086指令队列为6个字节。在执行指令的同时,从内存中取下面1条或几条指令,取来的指令依次放在指令队列中。采用“先进先出”的原则。指令队列的存在使8086/8088的EU和BIU并行工作,从而减少了CPU为取指令而等待的时间,提高了CPU的利用率,加快了整机的运行速度,另外也降低了对存储器存取速度的要求。,指令队列缓冲器,10,16位指令指针(InstructionPointer,IP),IP中含有BIU要取的下一条指令(字节)的偏移地址。,IP在程序运行中自动加1,指向要执行的下一条指令(字节)。,有些指令能使IP值改变或使IP值压进堆栈,或由堆栈弹出恢复原址。,指令指针寄存器,11,8086有20根地址线,内部寄存器只有16位。,“段加偏移”技术:,段寄存器存放确定各段起始地址的16位段地址信息。由IP提供或由EU按寻址方式计算出寻址单元的16位偏移地址,简称偏移量。将偏移地址与左移4位后的段寄存器内容同时送到地址加法器,相加后形成20位实际地址。,地址加法器和段寄存器,12,16位算术逻辑单元(ALU)算术、逻辑运算,计算16位偏移量16位标志寄存器FCPU的运算状态特征或存放控制标志数据暂存寄存器协助ALU完成运算通用寄存器组4个16位数据寄存器,4个16位指针与变址寄存器EU控制电路控制、定时与状态逻辑电路,执行单元组成,13,8086内部寄存器结构共有13个16位寄存器和1个只用了9位的16位标志寄存器。(共14个16位寄存器),8086的寄存器结构,段寄存器,控制寄存器,14,数据寄存器AX,BX,CX,DX数据寄存器一般用于存放参与运算的数据或运算结果。每一个数据寄存器都是16位寄存器,但又可将高、低8位分别作为两个独立的8位寄存器使用。它们的高8位记作AH、BH、CH、DH,低8位记作AL、BL、CL、DL,这给编程带来了很大的方便。,多数情况下,用于算术运算或逻辑运算指令中。,有些指令中,有特定的用途。,通用寄存器(一),15,数据寄存器各自习惯用法,上述4个寄存器一般作为通用寄存器使用,但又有各自的习惯用法。(1)AX称为累加器,在乘除法运算、串运算和I/O指令中都作为专用寄存器。(2)BX称为基址寄存器,在计算机寻址时,常用来存放基址。(3)CX称为计数寄存器,在循环和串操作指令中用作计数器。(4)DX称为数据寄存器,在寄存器间接寻址的I/O指令中存放I/O端口地址,在做双字长乘除法运算时,DX与AX合起来存放一个双字长数据(32位),其中DX存放高16位。,16,地址指针寄存器SP、BP(16位,存放偏移地址),堆栈指针寄存器SP和基址指针寄存器BP。用来指明当前堆栈段中数据所在的地址。,SP(StackPointer):给出栈顶的偏移地址(入栈和出栈指令时)。,BP(BasePointer):存放位于堆栈段中的数据区基地址的偏移地址。,通用寄存器(二),17,源变址寄存器SI和目的变址寄存器DI。存放当前数据段的偏移地址。,SI(SourceIndex):源操作数的偏移地址。,DI(DestinationIndex):目的操作数的偏移地址。,变址寄存器(16位,存放偏移地址),通用寄存器(三),18,4个16位段寄存器,8086指令可直接访问。CS(CodeSegment):存放代码段的段地址。SS(StackSegment):存放堆栈段的段地址。DS(DataSegment):存放数据段的段地址。ES(ExtraSegment):存放附加段的段地址,用于存放处理后的数据。,段寄存器是为实现“段加偏移”寻址基址而设置的。,段寄存器,19,段寄存器的使用,段寄存器的设立不仅使8088的存储空间扩大到1M,且为信息按特征分段存储带来了方便。在存储器中,信息按特征可分为:程序代码、数据和堆栈等。因此存储器可相应地划分为:程序段:用来存放程序的指令代码;数据段及附加段:用来存放数据和运算结果;堆栈段:用来传递参数、保存数据和状态信息。,20,表2.1存储器操作时段地址和段内偏移地址的来源,21,8086标志寄存器F为16位,用了其中9位。6个状态标志位:CF,PF,AF,ZF,SF,OF3个控制标志位:DF,IF,TF,0,7,8,15,FL,FH,2,4,6,9,10,11,溢出标志,方向标志,中断允许标志,跟踪标志,进位标志,奇偶标志,辅助进位标志,零标志,符号标志,标志寄存器(一),22,状态标志位:反映算术或逻辑运算后结果状态。,CF(CarryFlag):进位标志,D0位。执行结果在最高位上产生了一个进位或借位,CF=1;无进位或借位,CF=0。会受移位、循环指令影响。,PF(ParityFlag):奇偶性标志,D2位。执行结果的低8位中有偶数个“1”时,PF=1;否则PF=0。机器中传递信息时,对产生的代码出错情况提供检测条件。,标志寄存器(二),23,AF(AuxiliaryFlag):辅助进位标志,D4位。执行结果的低4位向高4位有进位或借位时,AF=1;否则AF=0。AF标志主要用于实现BCD码算术运算结果的调整。,ZF(ZeroFlag):零标志,D6位。如运算结果为零,ZF=1;如运算结果不为零,ZF=0。,标志寄存器(三),24,SF(SignFlag):符号标志,D7位。如运算结果为负数,SF=1;如运算结果为正数,ZF=0。,OF(OverflowFlag):溢出标志,D11位。如带符号数在进行算术运算时产生了溢出,OF=1;如无溢出,OF=0。溢出表示运算结果已经超出机器能够表示的数值范围。,标志寄存器(四),25,控制标志位:控制CPU的操作,由程序设置或清除。,DF(DirectionFlag):方向标志,D10位。控制数据串操作指令的步进方向。若用指令STD将DF=1,数据串操作过程中地址自动递减;若用指令CLD将DF=0,则地址自动递增。,标志寄存器(五),26,IF(InterruptFlag):中断允许标志,D9位。控制可屏蔽中断。若用指令STI将IF=1,允许接受外部从INTR引脚发来的可屏蔽中断请求;若用指令CLI将IF=0,禁止接受外部发来的可屏蔽中断请求。IF的状态不影响非屏蔽中断(NMI)请求,也不影响CPU响应内部的中断请求。,标志寄存器(六),27,TF(TrapFlag):跟踪(陷井)标志,D8位。为方便调试程序而设置的。若TF=1,CPU处于单步工作方式;若TF=0,正常执行程序。总结:对于状态标志,CPU在进行算术逻辑运算时,根据操作结果自动将状态标志位置位(等于1)或复位(等于0);对于控制标志,事先用指令设置,在程序执行时,检测这些标志,用以控制程序的转向。,标志寄存器(七),28,二、8086/8088存储器和I/O组织,1、8086/8088的存储空间8086/8088有20条地址线,可直接对1M个存储单元进行访问。每个存储单元存放一个字节型数据,且每个存储单元都有一个20位的地址,这1M个存储单元对应的地址为00000HFFFFFH,如图2.1所示。一个存储单元中存放的信息称为该存储单元的内容。如图2.1所示,00001H单元的内容为9FH,记为:(00001H)=9FH。,29,图2.1数据在存储器中的存放,30,20条AB,寻址1M存储空间;按字节组织,每个字节唯一地址;字节:顺序存放字:低位字节放在低地址中高位字节放在高地址中双字:低位字是偏移量高位字是段地址规则字:低位字节存放在偶数地址非规则字:低位字节存放在奇数地址,数据在存储器的存放,31,字和双字型数据存放,若存放的是字型数据(16位二进制数),则将字的低位字节存放在低地址单元,高位字节存放在高地址单元。如从地址0011FH开始的两个连续单元中存放一个字型数据,则该数据为DF46H,记为:(0011FH)=DF46H。若存放的是双字型数据(32位二进制数,这种数一般作为地址指针,其低位字是被寻址地址的偏移量,高位字是被寻址地址所在段的段地址),这种类型的数据要占用连续的4个存储单元,同样,低字节存放在低地址单元,高字节存放在高地址单元。如从地址E800AH开始的连续4个存储单元中存放了一个双字型数据,则该数据为66A65E65H,记为:(E800AH)=66A65E65H。,32,2、存储器的段结构,8086/8088CPU中有关可用来存放地址的寄存器如IP、SP等都是16位的,故只能直接寻址64KB。为了对1M个存储单元进行管理,8086/8088采用了分段结构的方法对存储器管理,即将1M的地址空间分成若干个64K的段,然后用段基地址加上段内偏移地址来访问物理存储器。,33,逻辑段与小节,8086/8088将整个存储器分为许多逻辑段,每个逻辑段的容量小于或等于64KB,允许它们在整个存储空间中浮动,各个逻辑段之间可以紧密相连,也可以互相重叠。在8086/8088存储空间中,从0地址开始,把每16个连续字节的存储空间称为小节。为了简化操作,逻辑段必须从任一节的首地址开始。这样划分的特点是:在十六进制表示的地址中,最低位为0(即20位地址中的低4位为0)。在1MB的地址空间中,共有64K小节。,34,存储器分为许多逻辑段,35,物理地址段地址偏移地址,8086/8088中,每一个存储单元都有一个唯一的20位地址,称此地址为该存储单元的物理地址。CPU访问存储器时,必须先确定所要访问的存储单元的物理地址,才能取得该单元的内容。20位的物理地址由16位的段地址和16位的段内偏移地址计算得到。段地址是每一个逻辑段的起始地址,必须是每个小节中的首地址,其低4位一定都是0,于是在保留段地址时,可只取段地址的高16位。偏移地址则是在段内相对于段起始地址的偏移值。因此任一存储单元物理地址的计算方法(如图所示)是:物理地址=16段地址+偏移地址,36,物理地址的形成,37,逻辑地址,在实际使用中,常用“段地址:偏移地址”来表示逻辑地址,其中段地址和偏移地址都是16位二进制数(常用4位十六进制数表示)。一个物理地址可用多种逻辑地址进行表示,但其物理地址是唯一的。,38,存储器分段示意图,39,堆栈是内存中一个特殊的区域,用以存放寄存器或存储器中暂时不用又必须保存的数据,在内存中所处的段为堆栈段。,8086系统中的堆栈是用段定义语句在存储器中定义的一个堆栈段,如同其它逻辑段,可在1MB的存储空间中浮动。,堆栈由段寄存器SS和堆栈指针SP来寻址SS:给出堆栈段的段基址;SP:给定当前栈顶,即指出从堆栈的段基址到栈顶的偏移量。,栈顶是堆栈操作的唯一出口,是栈地址较小的一端。,堆栈(一),40,为加快堆栈操作的速度,均以字为单位进行。,SP,SS,栈顶,栈底,栈底,SP,SS,栈顶,AX,PUSHAX,SP,SS,栈底,栈顶,BX,POPBX,AX,POPAX,堆栈(二),41,时钟:时钟脉冲发生器产生具有一定频率和占空比的脉冲信号,称之为机器的主脉冲或时钟。主频:时钟的频率,是机器的一个重要指标。时钟周期:主频的倒数,是CPU的基本时间计量单位。也叫一个T周期或T状态,或一个节拍。8086主频为5MHz,则一个时钟周期为200ns。总线周期:在取指令和传送数据时,CPU总线接口部件占用的时间称为总线周期或机器周期。(总线周期是指CPU从存储器或I/O端口存取一个字节所需要的时间。因为这种操作必须通过总线才能完成,故称为总线周期。),总线周期(一),42,一个最基本的总线周期由4个时钟周期组成:用T1,T2,T3,T4表示,总线周期(二),43,T1状态:CPU往多路复用总线上发送地址信息,选中所要寻址的存储单元或外设端口地址。,T2状态:CPU从总线上撤销地址,并使总线的低16位浮置成高阻状态,为传送数据作准备。,T3状态:总线的高4位继续提供状态信息,低16位将出现由CPU写出的数据,或CPU从存储器或者外设端口读入的数据。,总线周期(三),44,等待状态:有些情况下,I/O或M不能及时配合CPU传送数据,在T3状态启动之前它会通过READY引脚向CPU发一个“未准备好”信号。CPU在T3状态之后自动插入若干个时钟周期Tw。直至CPU接受到“准备好”信号,自动脱离Tw状态进入T4。,T4状态:总线周期结束。,空闲周期TI:两个总线周期之间,若干个时钟周期。,总线周期(四),45,3.18086/8088微处理器,3.1.48086/8088的引脚信号和功能,GNDAD14AD13AD12AD11,12345,4039383736,Vcc(+5V)AD15A16/S3A17/S4A18/S5,GNDA14A13A12A11,12345,4039383736,Vcc(+5V)A15A16/S3A17/S4A18/S5,AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND,67891011121314151617181920,8086,353433323130292827262524232221,A19/S6BHES7MNMXRDHOLD(RQGT0)HLDA(RQGT1)WR(LOCK)M(IOS2)DTR(S2)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET,A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGND,67891011121314151617181920,8088,353433323130292827262524232221,A19/S6SS0(HIGH)MNMXRDHOLD(RQGT0)HLDA(RQGT1)WR(LOCK)M(IOS2)DTR(S2)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET,34,46,8086/8088CPU具有40条引脚,采用双列直插式的封装形式。为了减少芯片上的引脚数目,8086/8088CPU都采用了分时复用的地址/数据总线。正是由于这种分时复用的方法,才使得8086/8088CPU可用40条引脚实现20位地址、16位数据(8位数据)及许多控制信号和状态信号的传输。由于8088只传输8位数据,所以8088只有8个地址引脚兼作数据引脚,而8086有16个地址/数据复用引脚。这些引脚构成了8086/8088CPU的外总线,它包括地址总线、数据总线和控制总线。8086/8088CPU通过这些总线和存储器、I/O接口等部件组成不同规模的系统并相互交换信息。,47,分时复用地址/数据总线:AD15AD0(引脚39,2-16,16根)传送地址时:单向,三态输出传送数据时:双向,三态输入输出,T1状态:输出要寻址的存储器或I/O端口地址;T2状态:浮置成高阻状态,为传输数据作准备;T3状态:用于传输数据;T4状态:结束总线周期。,通过分时复用利用40条引脚实现20位地址、16位数据及众多控制信号和状态信号的传输。,当CPU响应中断以及系统总线“保持响应”时,复用线都被浮置为高阻状态。,8086引脚信号与功能,48,分时复用地址/状态总线:A19/S6A16/S3(引脚35-38,4根)输出,三态。,T1状态:输出地址的最高4位;T2T4状态:输出状态信息。访问存储器:T1状态时输出的A19A16送到锁存器(8282)锁存,与AD15AD0组成20位的地址信号;访问I/O端口:不使用这4条引线,A19A16=0。,S6为0,8086当前与总线相连。S5表明中断允许标志位IF的当前设置。S4和S3指示当前正在使用哪个段寄存器。,8086引脚信号与功能,49,S4、S3的代码组合和对应的状态,8086引脚信号与功能,50,电源线和地线:3根1个电源线Vcc(引脚40):输入电压+5V10%2个地线GND(引脚1,20):均接地,8086引脚信号与功能,51,控制总线:8根,(引脚34):高8位数据总线允许/状态复用三态,输出,在总线周期的T1状态时输出,S7在T2T4时输出。8086中,当引脚上输出信号时,表示总线高8位AD15AD8上的数据有效,存储体奇库选择控制。S7在8086中未被赋予定义。,8086引脚信号与功能,52,(引脚32):读控制,三态,输出,低有效,=0时,CPU将执行对M或I/O端口的读操作。,在系统总线“保持响应”期间,被浮空。,对内存单元还是对I/O端口读取数据,取决于(8086)。,在一个读操作的总线周期中,信号在T2、T3和Tw状态均为低电平,以保证CPU读有效。,8086引脚信号与功能(八),53,(引脚22):“准备好”信号,输入,高有效由所寻址的M或端口发出,READY=1时,表示所寻址的M或I/O设备已准备就绪,马上可进行一次数据传输。,CPU在每个总线周期的T3状态开始对READY信号采样。,READY=0,表示M或I/O设备尚未准备好,则CPU在T3状态之后自动插入一个或几个等待状态Tw,直到READY变为高电平,进入T4状态,完成数据传送过程。,8086引脚信号与功能(九),54,(引脚23):等待测试信号,输入,低有效,当CPU执行WAIT指令时,进入空转等待状态,且每隔5个时钟周期对该线的输入进行一次测试;,引脚用于多处理器系统中,实现8086与协处理器间的同步。,若=1时,CPU将停止取下条指令而继续处于等待状态,重复执行WAIT指令,直至=0时,等待状态结束,CPU才继续往下执行被暂停的指令。,8086引脚信号与功能(十),55,(引脚18):可屏蔽中断请求,输入,高有效,INTR=1时,表示外设提出了中断请求,8086在每个指令周期的最后一个T状态去采样此信号。,若IF=1,CPU响应中断,停止执行当前的指令序列,并转去执行中断服务程序。,8086引脚信号与功能(十一),56,(引脚17):非屏蔽中断请求,输入,上升沿触发,此请求不受IF状态的影响,也不能用软件屏蔽,只要此信号一出现,CPU就会在现行指令结束后引起中断。,8086引脚信号与功能(十二),57,与8284A(时钟发生/驱动器)的复位输出端相连;,(引脚21):复位信号,输入,高有效,8086要求复位脉冲宽度不得小于4个时钟周期,而初次接通电源时所引起的复位,则要求维持的高电平不能小于50s;,复位后,CPU的主程序流程恢复到启动时的循环待命初始状态。,8086引脚信号与功能(十三),58,(引脚19):系统时钟,输入,通常与8284A时钟发生器的时钟输出端CLK相连,该时钟信号的低/高之比常采用2:1(占空度为1/3)。,8086引脚信号与功能(十四),59,其它控制线(引脚24-31):8个,,8086工作于最小方式,全部控制信号由CPU本身提供;,,8086工作于最大方式,控制信号由8288总线控制器提供。,这些控制线的性能,根据方式控制线(引脚33)所处状态而定。,8086引脚信号与功能(十五),60,最小模式和最大模式,8086有两种工作模式:最小模式是指系统中只有一个微处理器(8086)。在这种系统中,8086直接产生所有的总线控制信号,系统所需的外加总线控制逻辑部件最少。最大模式是指系统中含有两个或多个微处理器,其中一个为主处理器8086,其他的处理器称为协处理器,是协助主处理器工作的。在最大模式下工作时,控制信号是通过8288总线控制器提供的。因此,在不同方式下工作时,8086的部分引脚(第2431引脚)会具有不同的功能。,61,接电源电压,系统处于最小方式,即单处理器系统方式;,时钟信号发生器8284A:外接晶体的基本振荡频率为15MHZ,经8284A三分频后。送给CPU作系统时钟CLK。,8位地址锁存器8282:锁存后地址信号,在整个周期保持不变。,三态输出的8位数据总线收发器8286:用于增加系统的驱动能力。,等待状态产生电路:向8284A的RDY端提供一个信号,经同步后,向CPU的READY线发“准备就绪”信号,通知CPU数据传送已完成,可退出当前总线周期。,最小工作方式(一),62,最小工作方式(二),63,地址锁存器和数据收发器,地址锁存器(8282)由于8086的AD15AD0为分时复用的地址/数据线,即在T1状态用来输出地址,从T2状态开始改为传送数据,而内存及I/O设备需要在整个总线操作周期中地址线上都保持有稳定的地址信号,所以需要在地址信号消失前将其锁存。数据收发器(8286)对于数据信号,它不必锁存,但由于总线负载能力有限,当挂接部件过多时,就需要接入信号放大器,提高总线的负载能力,这种信号放大器称为数据收发器。,64,地址锁存器(8282),65,数据收发器(8286),66,8086的地址锁存与数据收发逻辑,在总线周期的T1状态,当ALE信号由高变低时,8282将地址信号锁存,使得从T2开始CPU撤销地址信号后,地址总线上还能保持地址输出。当8086与存储器或I/O设备交换数据时,DEN端产生一个低电平信号,使8286的OE端为0。8286的发送数据控制端T连接在8086的数据发送/接收端DT/R上,写操作时,DT/R为高电平,控制数据传送方向是从CPU流向存储器或I/O设备;在读操作时,DT/R为低电平,则数据的传送方向是从存储器或I/O设备流向CPU。在较小的8086系统中,也可以不用8286数据收发器,这时,多路复用的地址/数据总线直接与存储器或I/O设备的数据线相连。,67,(addresslatchenable):引脚25地址锁存允许信号,输出,高有效CPU在每个总线周期T1状态发出,作为地址锁存器的地址锁存信号。,(interruptacknowledge):引脚24中断响应信号,输出,低有效CPU对来自外设的中断请求作出响应,发两个连续负脉冲。第1个负脉冲:通知外设端口,中断请求被允许;第2个负脉冲:外设往数据总线上发送中断类型码。,最小工作方式(三),68,(dataenable):引脚26数据允许信号,输出,三态,低有效为总线收发器端提供控制信号,决定是否允许数据通过。,(datatransmit/receive):引脚27数据收发控制信号,输出,三态控制总线收发器的数据传送方向高电平时:数据发送;低电平时:数据接收。,最小工作方式(四),69,(memory/inputandoutput):引脚28存储器/输入输出控制信号,输出,三态用于区分CPU访问M还是IO,高电平:访问M;低电平:访问IO。,(write):引脚29写控制信号,输出,三态,低有效表示CPU当前进行M或者IO的写操作。,最小工作方式(五),70,(holdrequest):引脚30总线保持请求信号,输入,高有效是系统中的其它总线主控部件向CPU发出的请求占用总线的控制信号。,(holdacknowledge):引脚31总线保持应答信号,输出,高有效与HOLD配合使用的联络信号,有效期间,所有与三态门连接的引脚处于浮空,让出总线。,最小工作方式(六),71,接地,系统处于最大方式,含两个或多个处理器,需解决主处理器和协处理器之间协调工作,及总线共享问题。,时钟发生/驱动器8284A:1片,8位地址锁存器8282:3片,三态输出的8位数据总线收发器8286:2片,等待状态产生电路:,总线控制器8288:对CPU发出的控制信号变换、组合,得到对M或I/O的读/写信号,对8282和8286的控制信号。,最大工作方式(一),72,最小方式:控制信号或()、直接从CPU的第2429脚送出。,最大方式:从状态信号、组合中得到。,最大工作方式(二),73,、的代码组合和对应的操作,有源状态:三者只要有1个信号为低电平,对应了某一总线操作过程。,无源状态:三者均为高,此时,1个总线操作过程就要结束,另1个新的总线周期还未开始。,最大工作方式(三),74,最大工作方式(四),75,、(instructionqueuestatus),引脚24,25指令队列状态信号,输出提供本总线周期的前一个时钟周期中指令队列的状态,便于外部对8086内部指令队列的跟踪。,、的代码组合和对应的操作,最大工作方式(五),76,(lock):引脚29总线封锁信号,输出由指令前缀LOCK产生,LOCK前缀后面一条指令执行完毕,LOCK信号撤销。低电平时:CPU独占总线,系统中其它总线主部件就不能占用总线。,最大工作方式(六),77,、(request/grant):引脚30,31总线请求输入/总线请求允许输出供CPU以外的两个处理器,用来发出使用总线的请求信号,和接收CPU对总线请求信号的回答信号。二者都是双向的,信号在同一引线上传输,当方向相反。有更高优先权。,最大工作方式(七),78,(memoryreadcommand):对存储器读,(I/Oreadcommand):对I/O读,(memorywritecommand):对存储器写,(I/Owritecommand):对I/O写,(interruptacknowledge):中断响应信号,(advancedmemorywritecommand):超前写存储器命令,(advancedI/Owritecommand):超前写I/O命令,最大工作方式(八),79,存储器与I/O读写周期,总线周期是指CPU从存储器或I/O端口存取一个字节所需要的时间。因为这种操作必须通过总线才能完成,故称为总线周期。典型的总线周期有存储器读周期、存储器写周期、I/O设备输入周期、I/O设备输出周期、中断响应周期、空闲周期等。在一个总线周期中各个T状态下CPU引脚信号的状态,组成了CPU的总线操作时序。,80,存储器读周期时序,81,1)T1状态(1)M/IO有效,用以指出是读存储器还是读I/O端口。(2)在A19/S6A16/S3和AD15AD0上输出20位地址信息,同时BHE/S7端输出低电平,用它作为奇存储体的选择信号。(3)在T1状态的后半部,ALE信号变为低电平,8282地址锁存器利用此下降沿将20位地址信息及BHE信号锁存。(4)DT/R端输出为低电平,表示本总线周期为读周期,即数据收发器是从数据总线上接收数据。,82,2)T2状态(1)地址信号撤销,BHE/S7和A19/S6A16/S3开始输出状态信息S7S3(其中S7未赋予任何实际意义),S7S3一直持续到T4。(2)AD15AD0总线地址信息消失,处于悬浮高阻状态,使CPU有足够的时间将AD15AD0总线由输出地址方式变为输入数据方式。(3)读信号RD有效(低电平)。(4)在T2中央时刻,DEN变得有效,使数据能够从总线通过数据收发器8286,这个信号一直持续到T4中期结束。,83,3)T3状态CPU在T3状态一开始检测READY引脚,若其为高电平,则在T3状态与T4状态间不需要插入等待状态TW,下一个时钟脉冲到来时将进入T4状态;若其为低电平,说明存储器或外设尚未能将数据放到数据总线上,则下一个时钟脉冲到来时CPU将进入等待状态TW。通过在T3与T4间插入一个或几个等待状态TW,可以解决CPU与慢速存储器或外设的速度匹配问题。,84,4)TW状态(图中未画出)在每个TW状态的下降沿CPU检测READY引脚,若其仍为无效的低电平,则再插入TW状态,直到READY引脚变为高电平才进入T4状态。5)T4状态(1)在T3状态(或TW状态)与T4状态交界的下降沿处,CPU读取数据线上数据。(2)在T4状态的后半周数据信号从总线上撤销,各控制信号及状态信号也处于无效状态,一个总线周期结束。,85,存储器写周期时序,86,写周期时序与读周期时序很类似。首先,由M/IO信号来区分是访问存储器还是访问I/O端口。而DT/R应为高电平,表示本总线周期为写周期。其次,存储器地址以及ALE信号有效,但写入存储器的数据是在T2状态中放至数据线AD15AD0上的,WR信号也在T2状态有效。8086在T4状态后使控制信号变为无效,表示对存储器的写入过程已经完成。若有的存储器或外设来不及在指定的时间内完成写操作,可以利用READY信号使CPU插入Tw状态,以保证时间上的配合。具有Tw状态的写周期时序与具有Tw状态的读周期时序类似,不再赘述。,87,I/O总线周期,8086与外设通信过程,即从I/O端口输入数据或把数据输出到I/O端口的时序,与8086对存储器读写时序几乎完全相同,但要注意其中几个具体信号的差别:(1)M/IO线在规定有效的4个T状态将呈低电平。(2)由于I/O的寻址空间为64KB,所以地址线只用了A15A0,A19A16输出为0。,88,时序:计算机操作运行的时间顺序。,8086引脚信号与功能(十六),89,8086最小模式下的总线读操作时序图,90,8086最小模式下的总线写操作时序图,91,20条AB,寻址1M存储空间;按字节组织,每个字节唯一地址;字节:顺序存放字:低位字节放在低地址中高位字节放在高地址中双字:低位字是偏移量高位字是段地址规则字:低位字节存放在偶数地址非规则字:低位字节存放在奇数地址,8086存储器组织(一),92,字节的存取需要1个总线周期。,数据,偶数地址,奇数地址,(a)读偶数地址中的字节,(b)读奇数地址中的字节,被读字节,忽略,数据,偶数地址,奇数地址,被读字节,忽略,8086存储器组织(二),93,规则字的存取需要1个总线周期,非规则字的存取需要2个总线周期。,数据,偶数地址,奇数地址,数据,偶数地址,奇数地址,数据,(c)读偶数地址中的字,数据,(d)读奇数地址中的字,偶数地址,奇数地址,被读字,被读字节1,忽略,被读字节2,忽略,8086存储器组织(三),94,1MB存储空间,分成2个512KB的存储体(存储库);,低位库:与数据总线相连,每个地址为偶数地址。高位库:与数据总线相连,每个地址为奇数地址。,8086存储器组织(四),95,地址总线可同时对高、低位库的存储单元寻址,或用于库的选择,分别接到库选择端。,8086存储器组织(五),96,20根地址总线,允许寻址1MB存储空间;IP、SP、SI、DI都是16位,直接寻址最大空间64KB;,为寻址1MB存储空间,实行分段管理,每一段最长为64KB。段和段之间关系:连续、分开、部分重叠、完全重叠;,存储器分段(一),97,每个段大小可从一个字节开始,任意递增,最多包含64KB长的连续存储单元;,每个段的20位起始地址(段基址),是能被16整除的数,即最后4位为零,可通过程序在段寄存器中装入16位段地址来设置;段地址是20位

温馨提示

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

评论

0/150

提交评论