微机原理与接口技术周荷琴第5版课件.ppt
第2章 微处理器结构,教学重点 最大、小模式下基本引脚和总线形成 最大、小模式下的总线时序,回顾与补充,编程结构:是指从程序员和使用者的角度看到的结构,亦可称为功能结构。从功能上来看,8086/8088CPU可分为两部分,即总线接口部件BIU(Bus Interface Unit)和执行部件EU(Execution Unit)。指令的执行过程,内部暂存器,IP,ES,SS,DS,CS,输入/输出控制电路,外部总线,执行部分控制电路,1 2 3 4 5 6,ALU,标志寄存器,AH AL,BH BL,CH CL,DH DL,SP,BP,SI,DI,地址加法器,指令队列缓冲器,16位,20位,16位,8位,8086编程结构,执行部件(EU),总线接口部件(BIU),通用寄存器,变址寄存器,指针寄存器,段寄存器,8086的指令执行过程,返回,(1)执行部件(EU),功能:负责指令的执行。组成:包括ALU(算术逻辑单元)、通用寄存器组和标志寄存器等,主要进行8位及16位的各种运算。,返回,(2)总线接口部件(BIU),功能:负责与存储器及I/O接口之间的数据传送操作。具体来看,完成取指令送指令队列,配合执行部件的动作,从内存单元或I/O端口取操作数,或者将操作结果送内存单元或者I/O端口。组成:它由段寄存器(DS、CS、ES、SS)、16位指令指针寄存器IP(指向下一条要取出的指令代码)、20位地址加法器(用来产生20位地址)和6字节(8088为4字节)指令队列缓冲器组成。,返回,通用寄存器,8086/8088有4个16位的通用寄存器(AX、BX、CX、DX),可以存放16位的操作数,也可分为8个8位的寄存器(AL、AH;BL、BH;CL、CH;DL、DH)来使用。其中AX称为累加器,BX称为基址寄存器,CX称为计数寄存器,DX称为数据寄存器,这些寄存器在具体使用上有一定的差别。,返回,指针寄存器,系统中有两个16位的指针寄存器SP和BP,其中SP是堆栈指针寄存器,由它和堆栈段寄存器SS一起来确定堆栈在内存中的位置;BP是基数指针寄存器,通常用于存放基地址。,返回,变址寄存器,系统中有两个16位的变址寄存器SI和DI,其中SI是源变址寄存器,DI是目的变址寄存器,都用于指令的变址寻址方式。,返回,控制寄存器,IP、标志寄存器是系统中的两个16位控制寄存器,其中IP是指令指针寄存器,用来控制CPU的指令执行顺序,它和代码段寄存器CS一起可以确定当前所要取的指令的内存地址。顺序执行程序时,CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节;当IP单独改变时,会发生段内的程序转移;当CS和IP同时改变时,会产生段间的程序转移。,返回,段寄存器,系统中共有4个16位段寄存器,即代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES。这些段寄存器的内容与有效的地址偏移量一起,可确定内存的物理地址。通常CS划定并控制程序区,DS和ES控制数据区,SS控制堆栈区。,返回,处理器状态字PSW,8086/8088内部标志寄存器的内容,又称为处理器状态字PSW。其中共有9个标志位,可分成两类:一类为状态标志,一类为控制标志。状态标志表示前一步操作(如加、减等)执行以后,ALU所处的状态,后续操作可以根据这些状态标志进行判断,实现转移;控制标志则可以通过指令人为设置,用以对某一种特定的功能起控制作用(如中断屏蔽等),反映了人们对微机系统工作方式的可控制性。,PSW续,返回,8086的总线周期的概念,4个时钟周期,T1状态:CPU往总线发地址T2状态:CPU撤销低16位地址,高4位做反映状态信息T3状态:传送数据Tw状态T4状态:总线周期结束,为了取得指令或传送数据,就需要CPU的总线接口部件执行一个总线周期。在8086中一个基本的总线周期由4个时钟周期组成。,典型的8086总线周期序列,2.1.1 8086的两种组态模式,两种组态构成两种不同规模的应用系统最小模式构成小规模的应用系统8086本身提供所有的系统总线信号最大模式构成较大规模的应用系统,例如可以接入数值协处理器8087和输入/输出协处理器80898086和总线控制器8288共同形成系统总线信号,2.1 8086的引脚信号和总线形成,外部特性表现在其引脚信号上,学习时请特别关注以下几个方面:引脚的功能 信号的流向 有效电平 三态能力,指引脚信号的定义、作用;通常采用英文单词或其缩写表示,信号从芯片向外输出,还是从外部输入芯片,或者是双向的,起作用的逻辑电平高、低电平有效上升、下降边沿有效,输出正常的低电平、高电平外,还可以输出高阻的第三态,8086的引脚图,2.1.1 8086的两种组态模式(续),两种组态利用MN/MX引脚区别MN/MX接高电平为最小组态模式MN/MX接低电平为最大组态模式两种组态下的内部操作并没有区别IBM PC/XT采用最大组态本书以最小组态展开基本原理,2.1.2 最小组态的引脚信号,数据和地址引脚读写控制引脚中断请求和响应引脚总线请求和响应引脚其它引脚,1.数据和地址引脚,AD15AD0(Address/Data)地址/数据分时复用引脚,双向、三态在访问存储器或外设的总线操作周期中,这些引脚在第一个时钟周期输出存储器或I/O端口的低8位地址A7A0其他时间用于传送8位数据D7D0,1.数据和地址引脚(续1),A15A8(Address)8086 中间8位地址引脚,输出、三态(高电平、低电平、高阻状态)这些引脚在访问存储器或外设时,提供全部20位地址中的中间8位地址A15A8,1.数据和地址引脚(续2),A19/S6A16/S3(Address/Status)地址/状态分时复用引脚,输出、三态这些引脚在访问存储器的第一个时钟周期输出高4位地址A19A16在访问外设的第一个时钟周期全部输出低电平无效其他时间输出状态信号S6S3,1.数据和地址引脚(续3),S6为0表示8086当前与总线相连,故在T1-T4,S6始终为0.S5表明中断允许标志的设置,为1表示可屏蔽中断请求,为0表示禁止中断请求。S3和S4的四种组合分别选择ES,SS,CS,DS。,1.数据和地址引脚(续3),1.数据和地址引脚(续3),BHE/S7 高8位数据总线允许/状态复用引脚,输出。在T1状态输出BHE信号,表示高位地址/数据线AD15-AD8有效,在其他状态输出状态信号S7。,数据和地址引脚,BHE与AD0线配合表示当前总线使用情况,1.数据和地址引脚,NMI 非屏蔽中断引脚,输入 NMI不受IF的影响,也不能用软件进行屏蔽。,INTR 中断响应信号,输入,高电平有效。触发方式:电平或边沿触发外设请求中断INTR=1,则IF=0CPU不响应IF=1CPU执行完当前指令响应中断。,INTA 中断响应信号,输出,低电平有效CPU响应,则进入中断响应周期,发二个INTA负脉冲。第一个INTA:通知外设CPU已响应其请求第二个INTA:外设把中断类型号放到总线上。,2.读写控制引脚,WR(Write)写控制,输出、三态、低电平有效有效时,表示CPU正在写出数据给存储器或I/O端口RD(Read)读控制,输出、三态、低电平有效有效时,表示CPU正在从存储器或I/O端口读入数据,2.读写控制引脚,READY 存储器或I/O口就绪,输入、高电平有效在总线操作周期中,8086 CPU会在第3个时钟周期的前沿测试该引脚如果测到高有效,CPU直接进入第4个时钟周期如果测到无效,CPU将插入等待周期TwCPU在等待周期中仍然要监测READY信号,有效则进入第4个时钟周期,否则继续插入等待周期Tw。,其它引脚,CLK(Clock)时钟输入系统通过该引脚给CPU提供内部定时信号。8086的标准工作时钟为10MHzIBM PC/XT机的8086采用了4.77MHz的时钟,其周期约为210ns,复位、时钟引脚信号,RESET(reset)复位信号,输入 8086复位信号至少维持4个时钟周期的高电平有效,复位后CPU结束当前操作,对标志寄存器,IP,DS,SS,ES,及指令队列清零,将CS设置为FFFFH,当复位信号变为低电平时,CPU从FFFF0H开始执行。,其它引脚(续3),TEST测试,输入、低电平有效该引脚与WAIT指令配合使用当CPU执行WAIT指令时,他将在每个时钟周期对该引脚进行测试:如果无效,则程序踏步并继续测试;如果有效,则程序恢复运行也就是说,WAIT指令使CPU产生等待,直到引脚有效为止在使用协处理器8087时,通过引脚和WAIT指令,可使8086与8087的操作保持同步,最小模式引脚信号,INTA 中断响应信号,输出信号 用来对外设的中断请求作出响应,此信号位于连续两个总线周期中的两个负脉冲。第一个负脉冲通知外设接口,他发出的中断请求已经得到允许,外设接口收到第二个负脉冲后,往数据总线上放中断类型码,使CPU得到有关此中断具体信息。,最小模式引脚信号,ALE(Address Latch Enable)地址锁存允许,输出、三态、高电平有效ALE引脚高有效时,表示复用引脚:AD7AD0和A19/S6A16/S3正在传送地址信息由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用ALE引脚将地址锁存起来,最小模式引脚信号,DEN(Data Enable)数据允许,输出、三态、低电平有效有效时,表示当前数据总线上正在传送数据,可利用他来控制对数据总线的驱动 DT/R(Data Transmit/Receive)数据发送/接收,输出、三态该信号表明当前总线上数据的流向高电平时数据自CPU输出(发送)低电平时数据输入CPU(接收),最小模式引脚信号,M/IO(Input and Output/Memory)I/O或存储器访问,输出、三态该引脚输出高电平时,表示CPU将访问I/O端口,这时地址总线A15A0提供16位I/O口地址该引脚输出低电平时,表示CPU将访问存储器,这时地址总线A19A0提供20位存储器地址,最小模式引脚信号,WR 写信号,输出信号。当此信号有效时,表示CPU当前正在进行存储器或IO写操作,具体到底为哪种写操作,则由M/IO信号决定。,4.总线请求和响应引脚,HOLD总线保持(即总线请求),输入、高电平有效有效时,表示总线请求设备向CPU申请占有总线该信号从有效回到无效时,表示总线请求设备对总线的使用已经结束,通知CPU收回对总线的控制权,DMA控制器等主控设备通过HOLD申请占用系统总线(通常由CPU控制),4.总线请求和响应引脚(续1),HLDA(HOLD Acknowledge)总线保持响应(即总线响应),输出、高电平有效有效时,表示CPU已响应总线请求并已将总线释放此时CPU的地址总线、数据总线及具有三态输出能力的控制总线将全面呈现高阻,使总线请求设备可以顺利接管总线待到总线请求信号HOLD无效,总线响应信号HLDA也转为无效,CPU重新获得总线控制权,最小模式引脚信号,MN/MX端接+5V 一个8284A时钟发生器 三片8282或74LS373或74LS273作为地址锁存器存储器和外设较多时,要增加数据总线驱动能力,需要2片8286/8287或74LS245作为总线收发器,最小模式引脚信号,最小系统中,信号M/IO,RD,WR组合起来决定了系统中数据传输的方式,具体如下表所示。,8284A和8086的连接,8284A输出的时钟频率均为振荡源频率的1/3。,脉冲发生器作为振荡源,晶体振荡器作为振荡源,最大模式,QS1、QS0 指令队列状态信号,输出信号 此两个信号的组合提供前一个时钟周期中指令队列的状态,为8086对内部指令队列的跟踪提供帮助。,最大模式,S2、S1、S0总线周期状态信号,输出 这些信号的组合指出当前总线周期中进行的数据传输类型。8288利用这些信号产生对存储器和I/O接口的控制信号。S2可以看成是区分内存传输和I/O传输的标志。S1可以看成是区分输入操作和输出的标志。,最大模式,最大模式,LOCK 总线封锁信号,输出。当此信号有效时,系统中其他总线主部件不能占有总线。RQ/GT1,RQ/GT0 总线请求信号,输入;总线授权信号,输出。此两个信号可供CPU以外的两个模块用来发出使用总线的请求信号和接收CPU对总线的授权信号。都是双向信号。,三、8088的引脚与8086的不同之处,8086的操作和时序,系统的复位和启动操作;暂停操作;总线操作;中断操作;最小模式下的总线保持;最大模式下的总线请求/允许。,系统的复位和启动操作,CS=FFFFHIP0000H,复位操作的时序。,总线读操作,写操作时序,补充:三态门和D触发器,三态门和以D触发器形成的锁存器是微机接口电路中最常使用的两类逻辑电路三态门:功率放大、导通开关器件共用总线时,一般使用三态电路:需要使用总线的时候打开三态门;不使用的时候关闭三态门,使之处于高阻D触发器:信号保持,也可用作导通开关,三态,锁存,三态缓冲器(三态门),具有单向导通和三态的特性,T为低平时:输出为高阻抗(三态)T为高电平时:输出为输入的反相,74LS244,双4位单向缓冲器分成4位的两组每组的控制端连接在一起控制端低电平有效输出与输入同相,每一位都是一个三态门,每4个三态门的控制端连接在一起,双向三态缓冲器,具有双向导通和三态的特性,OE*0,导通 T1 AB T0 ABOE*1,不导通,Intel 8286,8位双向缓冲器控制端连接在一起,低电平有效可以双向导通输出与输入同相,OE*0,导通 T1 AB T0 ABOE*1,不导通,每一位都是一个双向三态门,8位具有共同的控制端,74LS245,8位双向缓冲器控制端连接在一起,低电平有效可以双向导通输出与输入同相,E*0,导通 DIR1 AB DIR0 ABE*1,不导通,74LS245与Intel 8286功能一样,D触发器,电平锁存:高电平通过,低电平锁存上升沿锁存:通常用负脉冲触发锁存,负脉冲的上升沿,带有异步置位清零的电平控制的锁存器,74LS273,具有异步清零的TTL上升沿锁存器,每一位都是一个D触发器,8个D触发器的控制端连接在一起,三态缓冲锁存器(三态锁存器),T,A,D Q C,B,Intel 8282,具有三态输出的TTL电平锁存器STB 电平锁存引脚OE*输出允许引脚,每一位都是一个三态锁存器,8个三态锁存器的控制端连在一起,74LS373,具有三态输出的TTL电平锁存器LE 电平锁存引脚OE*输出允许引脚,74LS373与Intel 8282功能一样,2.1.3 最小模式的总线形成,(1)20位地址总线的形成,采用3个8282进行锁存和驱动Intel 8282是三态透明锁存器,类似有Intel 8283和通用数字集成电路芯片373三态输出:输出控制信号有效时,允许数据输出;无效时,不允许数据输出,呈高阻状态透明:锁存器的输出能够跟随输入变化,(2)8位数据总线的形成,采用数据收发器8286进行双向驱动 Intel 8286是8位三态双向缓冲器,类似功能的器件还有Intel 8287、通用数字集成电路245等另外,接口电路中也经常使用三态单向缓冲器,例如通用数字集成电路244就是一个常用的双4位三态单向缓冲器,(3)系统控制信号的形成,由8086引脚直接提供因为基本的控制信号8086引脚中都含有例如:IO/M*、WR*、RD*等其它信号的情况看详图,2.1.4 最大组态的引脚定义,8086的数据/地址等引脚在最大组态与最小组态时相同有些控制信号不相同,主要是用于输出操作编码信号,由总线控制器8288译码产生系统控制信号:S2*、S1*、S0*3个状态信号LOCK*总线封锁信号QS1、QS0指令队列状态信号RQ*/GT0*、RQ*/GT1*2个总线请求/同意信号,2.1.5 最大组态的总线形成,系统地址总线采用三态透明锁存器74LS373和三态单向缓冲器74LS244 系统数据总线通过三态双向缓冲器74LS245形成和驱动 系统控制总线主要由总线控制器8288形成MEMR*、MEMW*、IOR*、IOW*、INTA*,2.2 8086的总线时序,时序(Timing)是指信号高低电平(有效或无效)变化及相互间的时间顺序关系。总线时序描述CPU引脚如何实现总线操作CPU时序决定系统各部件间的同步和定时,什么是总线操作?,2.2 8086的总线时序(续1),总线操作是指CPU通过总线对外的各种操作8086的总线操作主要有:存储器读、I/O读操作存储器写、I/O写操作中断响应操作总线请求及响应操作CPU正在进行内部操作、并不进行实际对外操作的空闲状态Ti描述总线操作的微处理器时序有三级:指令周期 总线周期 时钟周期,什么是指令、总线和时钟周期?,2.2 8086的总线时序(续2),指令周期是指一条指令经取指、译码、读写操作数到执行完成的过程。若干总线周期组成一个指令周期总线周期是指CPU通过总线操作与外部(存储器或I/O端口)进行一次数据交换的过程8086的基本总线周期需要4个时钟周期4个时钟周期编号为T1、T2、T3和T4总线周期中的时钟周期也被称作“T状态”时钟周期的时间长度就是时钟频率的倒数当需要延长总线周期时需要插入等待状态Tw,何时有总线周期?,演示,2.2 8086的总线时序(续3),任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码任何一条以存储单元为源操作数的指令都将引起存储器读总线周期,任何一条以存储单元为目的操作数的指令都将引起存储器写总线周期只有执行IN指令才出现I/O读总线周期,执行OUT指令才出现I/O写总线周期CPU响应可屏蔽中断时生成中断响应总线周期,如何实现同步?,2.2 8086的总线时序(续4),总线操作中如何实现时序同步是关键CPU总线周期采用同步时序:各部件都以系统时钟信号为基准当相互不能配合时,快速部件(CPU)插入等待状态等待慢速部件(I/O和存储器)CPU与外设接口常采用异步时序,它们通过应答联络信号实现同步操作,2.2.1 最小组态的总线时序,本节展开微处理器最基本的4种总线周期存储器读总线周期存储器写总线周期I/O读总线周期I/O写总线周期,存储器写总线周期,T1状态输出20位存储器地址A19A0IO/M*输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2状态输出控制信号WR*和数据D7D0T3和Tw状态检测数据传送是否能够完成T4状态完成数据传送,I/O写总线周期,T1状态输出16位I/O地址A15A0IO/M*输出高电平,表示I/O操作;ALE输出正脉冲,表示复用总线输出地址T2状态输出控制信号WR*和数据D7D0T3和Tw状态检测数据传送是否能够完成T4状态完成数据传送,存储器读总线周期,T1状态输出20位存储器地址A19A0IO/M*输出低电平,表示存储器操作;ALE输出正脉冲,表示复用总线输出地址T2状态输出控制信号RD*T3和Tw状态检测数据传送是否能够完成T4状态前沿读取数据,完成数据传送,演示,I/O读总线周期,T1状态输出16位I/O地址A15A0IO/M*输出高电平,表示I/O操作;ALE输出正脉冲,表示复用总线输出地址T2状态输出控制信号RD*T3和Tw状态检测数据传送是否能够完成T4状态前沿读取数据,完成数据传送,插入等待状态Tw,同步时序通过插入等待状态,来使速度差别较大的两部分保持同步在读写总线周期中,判断是否插入Tw1.在T3的前沿检测READY引脚是否有效2.如果READY无效,在T3和T4之间插入一个等效于T3的Tw,转13.如果READY有效,执行完该T状态,进入T4状态,演示,2.2.2 最大组态的写总线时序,2.2.2 最大组态的读总线时序,2.3操作模式,80386以上的微处理器都有三种工作方式:1.实地址模式2.保护模式3.虚拟8086模式,实模式,在处理器加电和复位的时候最先进入的就是实模式实地址模式采用分段存储方式,每段64K,物理地址由逻辑地址直接构成存储空间的最低的1KB存放了系统的中断向量表地址为00000H003FFH,其中存放了256个中断向量的中断服务程序的入口地址,保护模式,80386以上的高级微处理器最经常使用的模式,便于实现多任务,多用户下的存储管理采用段页式管理,在将存储空间分段的基础上再分页。其物理地址的形成是先由逻辑地址构成线性地址,再由线性地址构成物理地址,虚拟8086模式,虚拟8086模式只是为保护模式下的多任务操作中的一个DOS应用程序建立的虚拟机,其实质上还是运行在保护模式下的,支持多任务处理其物理地址为20位,最大可寻址1MB,可在4GB空间内浮动。,各种模式的转换,2.4存储管理,计算机中使用的存储器一般容量都很大,因此需要使用一定的存储管理手段对存储器进行组织,使其存储条理更加清晰,并且有利于存储器的扩展。,实模式下的段式管理,逻辑地址=段基址:偏移地址物理地址=段基址 16+偏移地址,保护模式下的段页式管理,保护模式下的存储管理采用段页式。在分段的基础上再分页,物理地址的形成分为两步,先由逻辑地址计算出线性地址,再由线性地址计算出物理地址。,线性地址到物理地址,逻辑地址到线性地址,第2章教学要求,1.了解8086的两种组态形式;2.掌握最小组态下的引脚定义、总线形成和总线时序;3.了解最大组态下的引脚定义、总线形成和总线时序。,什么是分时复用?,分时复用就是一个引脚在不同的时刻具有两个甚至多个作用最常见的总线复用是数据和地址引脚复用 总线复用的目的是为了减少对外引脚个数8088/8086CPU的数据地址线采用了总线复用方法,基本控制信号的组合方法,最小组态总线形成(Intel产品手册推荐电路),S2*、S1*、S0*的编码意义,总线周期,基本总线周期由4个T状态组成:T1、T2、T3、T4等待时钟周期Tw,在总线周期的T3和T4之间插入空闲时钟周期Ti,在两个总线周期之间插入,动态,各种周期的动态演示,存储器读20002H35H,等待状态,动态,等待状态Tw的插入,