CPU和外设数据传送方式.ppt
第四章 微机和外设的数据传输,主要内容:CPU和外设之间的数据传送方式:程序方式 中断方式 DMA方式程序方式无条件传送方式 条件传送方式查询方式中断中断基本原理8086的中断系统中断的引申及分类DMADMA的基本原理DMA工作过程,微型计算机系统硬件组成,问题:为什么存储器可以直接挂在系统总线上?而外设不能直接直接挂在系统总线上?,2外部设备特点(1)品种繁多。(2)工作速度一般比CPU慢,且速度的分布也相当宽。(3)信号类型与信息格式多样化。,1存储器特点(1)功能单一,品种有限(2)速度与CPU匹配,1 I/O接口(Interface)I/O接口是一电子电路(以IC芯片或接口板形式出现),其内有若干专用寄存器和相应的控制逻辑电路构成。它是CPU和I/O设备之间交换信息的媒介和桥梁。,信息格式 时序匹配,速度匹配(Buffer)对传送数据提供缓冲,以消除计算机与外设在“定时”或数据处理速度上的差异,4.1 I/O接口的基本功能,信号形式匹配A/D、D/A;串/并、并/串,信号电平和驱动能力 电平转换、增加驱动能力,一.I/O端口I/O接口通常包含一组能够与处理器交换信息的寄存器,称为I/O端口寄存器,简称为I/O端口。(接口中可寻址并进行读写的寄存器。),4.2 I/O接口中的I/O端口,1.一个外设与CPU交换信息往往需要几个端口:,数据端口 控制端口 状态端口,CPU对外设的访问实际上是通过对I/O端口的访问来实现的。CPU对外设的各种操作(向外设发出控制命令、查询外设的状态向外设输出数据、从外设获得数据),均归结为对接口电路中各端口的读/写操作(IN/OUT指令)。,存放数据信息,存放状态信息,即反映外设当前工作状态的信息,状态信息与控制信息可以广义地看作数据信息,通过数据总线传送。,存放控制命令,二、I/O端口的编址方式,I/O端口独立编址I/O端口与存储单元统一编址,端口地址:在微机系统中,每个端口分配有唯一的地址码,称之为端口地址:,I/O端口的编址方式,1.统一编址把外设接口与内存统一进行编址。各占据统一地址空间的不同部分。优点指令统一,灵活;访问控制信号统一。缺点内存可用地址空间减小,0,地址空间(共1MB),内存地址(960KB),I/O地址(64KB),FFFFFH,EFFFFHF0000H,2.独立编址外设地址空间和内存地址空间相互独立。优点:内存地址空间不受I/O编址的影响缺点:I/O指令功能较弱,0,I/O地址1MB,FFFFFH,0,内存地址1MB,FFFFFH,8088/8086 CPU的I/O编址方式采用I/O独立编址方式最小模式下,通过控制总线中的 来区分访问存储器还是IO端口;最大模式下通过控制总线、IOR、IOW 区分访问存储器还是IO端口;I/O操作只使用20根地址线中的16根:A15 A0I/O地址范围为0FFFFHIBM PC只使用了1024个I/O地址(03FFH),M/IO,8086总线,A19-A0,A9-A0,MEMR、MEMW,IOR、IOW、AEN,存储器,输入/输出,MEMR、MEMW,在接口电路的设计中,可把几个端口设计为相同的端口地址:(1)对数据输入端口只进行读操作(IN),对数据输出端口仅进行写操作(OUT),因此,数据输入端口和数据输出端口可使用相同的地址,接口电路用读写控制信号来区分。IN AL,80HOUT 80H,AL(2)由于对状态端口只进行读操作(IN),对控制端口仅进行写操作(OUT),因此,状态端口和控制端口可使用相同的地址。IN AL,81HOUT 81H,AL,系统板上的I/O芯片大多是可编程的大规模集成电路,完成相应的接口操作。如定时/计数器、中断控制器、DMA控制器、并行接口、键盘控制器等。,I/O扩展槽上的接口控制卡由若干个集成电路按一定的逻辑组成的一个部件。如软驱卡、硬驱卡、图形卡、声卡、打印卡、串行通信卡等,4.3 I/O接口硬件分类I/O接口的硬件分成两类:,I/O端口地址分配 PC微机I/O地址线可有16根,对应的I/O端口编址可达64K字节,其端口地址译码是采用部分译码法,即只使用了低10位地址线一个A0A9,故其I/O端口地址范围是0000H003FFH,总共只有1024个端口。,表2.1 系统板上接口芯片的端口地址I/O芯片名称 端口地址DMA控制器1 00001FHDMA控制器2 0C00DFH DMA页面寄存器 08009FH中断控制器1 02003FH中断控制器2 0A00BFH 定时器 04005FH并行接口芯片(键盘接口)06006FHRT/CMOS RAM 07007FH 协处理器 0F00FFH,2.2 I/O端口地址分配,表2.2扩展槽上接口控制卡的端口地址I/0接口名称 端口地址游戏控制卡 20020FH并行口控制卡1 37037FH并行口控制卡2 27027FH串行口控制卡1 3F83FFH串行口控制卡2 2F02FFH原型插件板(用户可用)30031FH同步通信卡1 3A03AFH同步通信卡2 38038FH单显MDA 3B03BFH彩显CGA 3D03DFH彩显EGA/VGA 3C03CFH硬驱控制卡 1F01FFH软驱控制卡 3F03F7HPC网卡 36036FH,三、I/O地址空间的选用凡是被系统配置占用了的地址一律不能使用;未被占用的地址,用户可以使用,但申明保留的地址,不要使用。用户可使用300H31FH地址。,4.4 输入输出的控制方式,主机与外设之间数据传送的控制方式有以下三种:程序方式中断方式直接存储器存取(DMA,Direct Memory Access),程序传送方式,CPU与外设间的数据交换在程序(指令)控制下进行。又分为:无条件程序传送;条件传送即程序查询;,1 无条件程序传送方式,适用于总是处于准备好状态的外设以下外设可采用无条件传送方式:开关发光器件(如发光二极管、7段数码管、灯泡等)继电器步进电机优点:软件及接口硬件简单缺点:只适用于慢速简单外设,适应范围较窄,认为外设已经准备就绪,直接与外设传送数据,查询方式的流程图,超时?,READY?,与外设进行数据交换,超时错,读入并测试外设状态,Y,N,Y,N,传送完?,防止死循环,复位计时器,N,Y,2 程序查询方式,CPU在与外设交换数据前必须询问外设状态“你准备好没有?”,适用于外设并不总是准备好,而且对传送速率、传送效率要求不高的场合。对外设的要求:应提供设备状态信息对接口的要求:需要提供状态端口优点:软件比较简单缺点:CPU效率低,数据传送的实时性差,速度较慢 使用查询方式,CPU必须检测接口电路的状态寄存器,如果设备未准备好,CPU就要不断地查询,降低了CPU的运行效率.,动画演示,在进行输入输出操作时,输入需要缓冲,输出需要锁存输入缓冲:输入时,在系统的数据总线和外设间接三态缓冲器,当读该缓冲器的控制信号有效时,才将缓冲器的三态门打开,使外设的数据进入系统的数据总线。常用的三态缓冲器有:74LS244(单向)74LS245(双向)当三态缓冲器的控制端有效时,三态门打开,允许数据通过否则,三态门关闭,呈高阻状态,输出锁存:输出时,需要在系统的数据总线和外设间接锁存器,在锁存允许端为无效电平时,数据总线上的新数据不能进入锁存器。只有当确知外设已经取走上次输出的数据时,方能在锁存允许端为有效电平时,将新数据送入锁存器保留。常用的锁存器有:74LS273(8D触发器)74LS373(8位锁存器,三态输出),中断方式,CPU无需循环查询外设状态,而是外部设备在需要进行数据传送时才中断CPU正在进行的工作,让CPU来为其服务。即CPU在没有外设请求时可以去做更重要的事情,有请求时才去传输数据,从而大大提高了CPU的利用率。优点:CPU效率高,实时性好,速度快。缺点:程序编制较为复杂。,DMA传输,前面三种I/O方式都需要CPU作为中介:外设 CPU 内存 1)软件:外设与内存之间的数据传送是通过CPU执行程序(中断处理子程序)来完成的;(IN/OUT指令)2)硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的(总线由CPU控制)。缺点:对于高速外设(如磁盘、高速A/D),中断方式不能满足数据传输速度的要求,解决:DMA传输,DMA传输:外设 内存外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者;总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。优点:数据传输由DMA硬件来控制,数据直接在内存和外设之间交换,可以达到很高的传输速率(可达几MB/秒),DMA=Direct Memory Access 直接存储器访问DMA方式是一种由专门的硬件电路执行I/O的数据传送方式,它可以让外设接口直接与内存进行高速的数据传送,而不必经过CPU.这种专门的硬件电路称为DMA控制器,简称DMAC.,DMA传送原理示意图,系统总线,CPU,DMAC,存储器,外设接口,AEN,IOW,MEMW,MEMR,IOR,MEMW,MEMR,IOW,IOR,AEN,HOLD,HLDA,DRQ,DACK,AEN,IOW,IOR,MEMW,MEMR,外设发出DMA请求 DMAC向CPU申请总线 CPU响应,释放总线控制权 DMAC得到总线控制权,并发出DMA响应信号 由DMAC发出各种控制信号和地址信息,控制外设与存储器之 间的数据传送 数据传送完后,DMAC撤销HOLD信号 CPU释放HLDA信号,并重新控制总线,中断的定义,CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。,中断源,引起CPU中断的事件中断源。例如:外设请求输入输出数据,报告故障等事件掉电、硬件故障、软件、中断源分为:外部中断、内部中断内部中断:CPU内部执行程序时自身产生的中断外部中断:CPU以外的设备、部件产生的中断 8086/8088的外部中断信号:INTR、NMIINTR可屏蔽中断请求,高电平有效,受IF标志的控制。IF=1时,执行完当前指令后CPU对它作出响应。NMI非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此中断请求信号。,为何计算机中要引入中断?,提高数据传输率;避免了CPU不断检测外设状态的过程,提高了CPU的利用率。实现对特殊事件的实时响应。,中断过程,五个步骤:中断请求中断判优(中断源识别)中断响应中断服务中断返回以下以外部中断为主介绍这五个步骤。,1中断请求,外设接口(中断源)发出中断请求信号,送到CPU的INTR或NMI引脚;中断请求信号:边沿请求,电平请求例如,NMI为边沿请求,INTR为电平请求中断请求信号应保持到中断被处理为止;CPU响应中断后,中断请求信号应及时撤销。在8086/8088系统中,外设的中断要经过8259A可编程中断控制器(PIC)的排队判优后向CPU发出:(I/O接口)PIC CPU,2中断源识别,计算机中的中断源有很多,CPU必须识别是哪一个设备产生中断。识别中断源有两个方法:软件查询。简单硬件方式之菊花链法中断矢量法。由中断源提供中断类型号,CPU根据类型确定中断源。(8086/8088即采用此种方法),中断判优,多个中断源产生中断,CPU首先为谁服务?中断优先级排队问题。中断优先级控制要处理两种情况:对同时产生的中断:应首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则处理;对非同时产生的中断:低优先级别的中断处理程序允许被高优先级别的中断源所中断即允许中断嵌套。中断优先级的控制方法硬件判优链式判优、并行判优(中断向量法)软件判优顺序查询中断请求,先查询的先服务(即先查询的优先级别高)通常将中断判优与中断源识别合并在一起进行处理。x86系统中,这项任务由PIC和CPU共同完成。,INTAin,CPUINTAINTR,外设1,外设2,外设接口1,菊花链逻辑电路,外设接口2,外设3,外设接口3,1,菊花链逻辑电路,菊花链逻辑电路,IREQ,IREQ,IREQ,中断确认,链式判优电路原理图,INTAin,INTAin,中断确认,中断确认,菊花链逻辑电路,INTAin,IREQ,INTR,&,1,INTAout,DB,三态门,中断向量码,E,外设接口,中断确认,菊花链逻辑电路,3中断响应,在每条指令的最后一个时钟周期,CPU检测INTR或NMI信号。若以下条件成立,则CPU响应中断:当前指令执行完。对INTR,还应满足以下条件当前指令是STI和IRET,则下条指令也要执行完。当前指令带有LOCK、REP等指令前缀时,则把它们看成一个整体,要求完整地执行完;对INTR,CPU应处于开中断状态,即IF=1;当前没有复位(RESET)和保持(HOLD)信号。若NMI和 INTR 同时发生,则首先响应NMI。,中断响应(续),CPU中断响应时,要做下述三项工作:向中断源发出INTA#中断响应信号;断点保护,包括CS、IP和PSW(FLAGS)。这主要是保证中断结束后能返回被中断的程序。获得中断服务程序首地址(入口)。,中断处理(中断服务),中断服务子程序特点为”远”过程(类型为FAR)要用IRET指令返回中断服务子程序要做的工作保护现场(PUSH regs)开中断(STI)进行中断处理 恢复现场(POP regs)中断返回(IRET),8088的中断系统,与中断有关的控制线为:NMI、INTR、INTA#8088系统的中断源内部中断除法溢出:类型号0,商大于目的操作数所能表达的范围时产生。单步中断:类型号1,TF=1时产生断点中断:类型号3,这是一个软件中断,即INT 3指令。溢出中断:类型号4,这是一个软件中断,即INTO指令。软件中断:即INT n指令,类型号n(0-255)。外部中断非屏蔽中断NMI:类型号2,不可用软件屏蔽,CPU必须响应它。可屏蔽中断INTR:类型号由PIC提供。IF=1时CPU才能响应。,NMI,INTR,中断逻辑,软件中断指令,溢出中断,除法错,单步中断,非屏蔽中断请求,中断控制器8259APIC,8086/8088CPU内部逻辑,断点中断,8086/8088中断源类型,可屏蔽中断请求,n,4,3,0,1,2,8088系统采用中断类型(向量)码来识别不同的中断源,每个中断源都有一个与它相对应的中断类型码。溢出、断点、除法溢出、单步、非屏蔽中断的类型码为固定值软件中断的类型码由指令给出可屏蔽中断的类型码由PIC给出CPU响应INTR中断时,会产生两个中断响应总线周期,要求PIC在第2个中断响应总线周期把中断类型码放到数据总线上,供CPU读入。,中断向量表(IVT),存放各类中断的中断服务程序的入口地址(段和偏移)表的地址位于内存的00000H003FFH,大小为1KB,共256个入口每个入口占用4 Bytes,低字为段内偏移,高字为段基址根据中断类型号获得中断服务程序入口的方法:(n为中断类型号)中断向量在IVT中的存放地址4n,本章作业,什么是I/O端口?通常有哪几类端口?计算机对I/O端口编址时常采用哪两种方法?8086系统中采用的是哪一种?CPU和外设之间的数据传送方式有哪几种?简述程序查询方式的原理并画出过程的流程图。简述中断方式的基本思想。相对于查询方式有何优点?概念解释:中断类型号 中断向量 中断向量表简述8086系统中,可屏蔽硬件中断的响应过程。解决中断优先级的方法有哪些?简述DMA方式的基本思想。和其他两种方式相比,有何本质上的区别?简述DMA传输的过程。11DMAC的地址线为何是双向的?何时输入何时输出?,