《输入输出系统》PPT课件.ppt
第7章输入输出系统1主要内容n输入输出系统的特点和功能输入输出系统的特点和功能nI/O端口及其编址方式端口及其编址方式n基本输入输出方法基本输入输出方法n中断控制技术中断控制技术27.1 7.1 输入输出系统概述主要内容:主要内容:nI/O系统特点系统特点nI/O接口与接口与I/O端口的概念端口的概念nI/O端口的编址方式端口的编址方式n端口地址译码端口地址译码n数据传送方式数据传送方式3一、输入输出系统将将CPU及主存以外的部分叫做输入输出系统及主存以外的部分叫做输入输出系统输入输出接口输入输出接口输入输出设备输入输出设备输入输出软件输入输出软件4输入输出系统的特点n复杂性复杂性n异步性异步性n时实性时实性n与设备无关性与设备无关性5I/O接口I/O接口:接口:n负责将外设连接到总线上的一组逻辑电负责将外设连接到总线上的一组逻辑电路的总称。路的总称。n实现外设与主机之间的实现外设与主机之间的信息交换。信息交换。6I/O接口要解决的问题n速度匹配速度匹配(Buffer)n信号的驱动能力信号的驱动能力(电平转换器、驱动器电平转换器、驱动器)n信号形式和电平的匹配信号形式和电平的匹配(A/D、D/A)n信息格式信息格式(字节流、块、数据包、帧字节流、块、数据包、帧)n时序匹配时序匹配(定时关系定时关系)n总线隔离总线隔离(三态门三态门)7接口的功能n数据的缓冲与暂存数据的缓冲与暂存n信号电平与类型的转换信号电平与类型的转换n增加信号的驱动能力增加信号的驱动能力n对外设进行监测、控制与管理,中断处理对外设进行监测、控制与管理,中断处理8二、I/O端口数据端口数据端口状态端口状态端口控制端口控制端口端端 口口I/O端口:接口中的寄存器端口:接口中的寄存器9I/O端口CPU数据数据状态状态控制控制外设外设10I/O端口的编址方式统一编址统一编址独立编址独立编址11端口与内存的统一编址特点:特点:n指令及控制信号统一指令及控制信号统一n内存地址资源减少内存地址资源减少内存内存地址地址960KBI/O地址地址64KB00000HF0000HFFFFFH12端口的独立编址特点:特点:n内存地址资源充内存地址资源充分利用分利用n能够应用于端口能够应用于端口的指令较少的指令较少内存内存地址地址I/O地址地址00000HFFFFFHFFFFH0000H13端口的独立编址8 80 08 86 6总总线线A19-A0A15-A0MEMR、MEMWIOR、IOW、BHE存储器存储器输入输入/输出输出148086的I/O端口编址n采用采用I/O独立编址方式独立编址方式(但地址线与存储器共用但地址线与存储器共用);n最小模式下由最小模式下由M/IO区分是访问内存还是访问端口;区分是访问内存还是访问端口;n最大模式下用总线控制器信号来区分访问对象最大模式下用总线控制器信号来区分访问对象nI/O操作只使用操作只使用20位地址信号中的位地址信号中的16位:位:A15A0n可寻址的可寻址的I/O端口数为端口数为64K(65536)个个nI/O地址范围为地址范围为0FFFFHnIBM PC只使用了只使用了1024个个I/O地址地址(03FFH)15三、I/O地址的译码目的:目的:n确定端口的地址确定端口的地址参加译码的信号:参加译码的信号:nIOR,IOW,A15 A0nOUT指令将使总线的指令将使总线的IOW信号有效信号有效nIN指令将使总线的指令将使总线的IOR信号有效信号有效16I/O地址的译码n当接口只有一个端口时,当接口只有一个端口时,16位地址信号位地址信号一般一般应应全部参与译码,译码输出直接选择全部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则该端口;当接口具有多个端口时,则16位地址线的高位位地址线的高位参与译码(决定接口的基参与译码(决定接口的基地址),而低位则用于确定要访问哪一个地址),而低位则用于确定要访问哪一个端口。端口。17I/O地址的译码n某外设接口有某外设接口有4个端口,地址为个端口,地址为2F0H2F3H,试将其与系统连接。,试将其与系统连接。18四、输入输出数据的传送方式并行并行 一个数据单位同时传送一个数据单位同时传送串行串行 数据按位传送数据按位传送197.27.2 基本输入/输出方法程序控制方式程序控制方式中断方式传送中断方式传送直接存储器存取直接存储器存取(DMA)无条件传送无条件传送查询式传送查询式传送20一、无条件传送n适用于总是处于准备好状态的外设适用于总是处于准备好状态的外设n优点:软件及接口硬件简单优点:软件及接口硬件简单n缺点:只适用于简单外设,适应范围较窄缺点:只适用于简单外设,适应范围较窄21无条件传送例n读取开关的状态;读取开关的状态;n当开关闭合时,输出编码使发光二极管亮当开关闭合时,输出编码使发光二极管亮22DCPQD0D1输出口地输出口地址址38F3H输入口地输入口地址址38F0H+5V123二、查询工作方式适用场合:适用场合:n外设并不总是准备好外设并不总是准备好n对传送速率和效率要求不高对传送速率和效率要求不高对外设及接口的要求:对外设及接口的要求:n外设应提供设备状态信息外设应提供设备状态信息n接口应具备状态端口接口应具备状态端口24查询工作方式n优点:软件比较简单优点:软件比较简单n缺点:缺点:CPU效率低,数据传送的实时性效率低,数据传送的实时性 差,速度较慢差,速度较慢单一外设时单一外设时的工作流程的工作流程25超时超时?READY?READY?与外设进与外设进行数据交换行数据交换超时错超时错读入并测试外设状态读入并测试外设状态YNYN传送完?传送完?防止死循环防止死循环复位计时器复位计时器NY26查询工作方式例外设状态端口地址为外设状态端口地址为03FBH,第,第5位位(bit5)为为状态标志(状态标志(=1忙,忙,=0准备好)准备好)外设数据端口地址为外设数据端口地址为03F8H,写入数据会使,写入数据会使状态标志置状态标志置1;外设把数据读走后又把它置;外设把数据读走后又把它置0。试画出其电路图,并将试画出其电路图,并将DATA下下100B数输出数输出27三、中断控制方式特点:特点:n外设在需要时向外设在需要时向CPU提出请求,提出请求,CPU再去为再去为它服务。服务结束后或在外设不需要时,它服务。服务结束后或在外设不需要时,CPU可执行自己的程序可执行自己的程序n优点:优点:CPU效率高,实时性好,速度快。效率高,实时性好,速度快。n缺点:程序编制较为复杂。缺点:程序编制较为复杂。28以上三种I/O方式的共性均需均需CPU作为中介:作为中介:n软件:软件:外设与内存之间的数据传送是通过外设与内存之间的数据传送是通过CPU 执行程序来完成的(执行程序来完成的(PIO方式);方式);n硬件:硬件:I/O接口和存储器的读写控制信号、地址接口和存储器的读写控制信号、地址 信号都是由信号都是由CPU发出的。发出的。n 缺点:程序的执行速度限定了传送的最大速度缺点:程序的执行速度限定了传送的最大速度 (约为几十(约为几十KB/秒)秒)29四、DMA控制方式特点:特点:n外设直接与存储器进行数据交换外设直接与存储器进行数据交换,CPU不不再担当数据传输的中介者;再担当数据传输的中介者;n总线由总线由DMA控制器(控制器(DMAC)进行控制)进行控制(CPU要放弃总线控制权),内存要放弃总线控制权),内存/外设的外设的地址和读写控制信号均由地址和读写控制信号均由DMAC提供。提供。30DMA控制方式DMAC外设外设接口接口CPUQRDMEMDACKHOLDHLDABUS控制信号控制信号31DMA控制方式的工作过程n外设向外设向DMA控制器发出控制器发出“DMA传送请求传送请求”信号信号DRQ;nDMA控制器收到请求后,向控制器收到请求后,向CPU发出发出“总线请求总线请求”信信号号HOLD;nCPU在完成当前总线周期后会立即发出在完成当前总线周期后会立即发出HLDA 信号,对信号,对HOLD信号进行响应;信号进行响应;nDMA控制器收到控制器收到HLDA信号后,就开始控制总线,并向信号后,就开始控制总线,并向外设发出外设发出DMA响应信号响应信号DACK32DMA控制方式的工作过程nDMA控制器送出地址信号和相应的控制信控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直号,实现外设与内存或内存与内存之间的直接数据传送;接数据传送;n例:从外设向内存传送一个字节例:从外设向内存传送一个字节 DMAC向向I/O接口发出读信号,同时往地址总线上接口发出读信号,同时往地址总线上发出存储器的地址和存储器写信号和发出存储器的地址和存储器写信号和AEN信号。信号。33DMA控制方式的工作过程nDMA控制器自动修改地址和字节计数器,并控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的数据判断是否需要重复传送操作。当规定的数据传送完后,传送完后,DMA控制器就撤销发往控制器就撤销发往CPU的的HOLD信号。信号。CPU检测到检测到HOLD失效后,紧失效后,紧接着撤销接着撤销HLDA信号,并在下一时钟周期重信号,并在下一时钟周期重新开始控制总线。新开始控制总线。34DMA的三种传送方式n连续传送(块传送):连续传送(块传送):DMAC在申请到总线后,将一块数据传送完后才释放总在申请到总线后,将一块数据传送完后才释放总线,而不管中间线,而不管中间DREQ是否有效。是否有效。n单次传送(每次传送一个字节):单次传送(每次传送一个字节):每个每个DMA周期只传送一个字节就立即释放总线。周期只传送一个字节就立即释放总线。n按需传送(猝发传送):按需传送(猝发传送):只要只要I/O接口的数据缓冲可用,就可进行传送。此时接口的数据缓冲可用,就可进行传送。此时I/O接口需要有一定大小的接口需要有一定大小的FIFO缓冲区。缓冲区。35数据块传送:数据块传送:YN允许允许DMADMA请求?请求?DMAC请求总线请求总线CPU响应响应,DMAC获总线控制权获总线控制权DMA传送一个字节传送一个字节块结束?块结束?地址增量,计数器减量地址增量,计数器减量DMAC释放总线释放总线YN36每次传送一个字节:每次传送一个字节:NYN允许允许DMADMAC请求总线请求总线CPU响应响应,DMAC获总线控制权获总线控制权DMA传送一个数据传送一个数据块结束?块结束?释放总线至少一个总线周期释放总线至少一个总线周期地址增量,计数器减量地址增量,计数器减量DMAC释放总线释放总线Y测试测试I/O的的DREQ DMA请求?请求?37按需传送:按需传送:NYCPU响应响应,DMAC获总线控制权获总线控制权DMA传送一个字节传送一个字节块结束?块结束?测试测试I/O的的DREQ 有效?有效?地址增量,计数器减量地址增量,计数器减量释放总线,请求中断释放总线,请求中断无效,释放总线无效,释放总线允许允许DMADMA请求?请求?DMAC请求总线请求总线YNYN38DMA控制方式优点:优点:n数据传输数据传输由由DMA硬件来控制,数据硬件来控制,数据直接在直接在内存和外设之间交换,可以达到很高的传内存和外设之间交换,可以达到很高的传输速率(可达几输速率(可达几MB/秒)秒)39五、I/O通道控制方式n具有自己的指令系统具有自己的指令系统n专门负责外部设备的控制专门负责外部设备的控制407.37.3 中断技术掌握:掌握:n中断的基本概念中断的基本概念n中断响应的一般过程中断响应的一般过程n中断向量表及其初始化中断向量表及其初始化n8088/8086中断系统中断系统41一、中断的基本概念中断:中断:nCPU执行程序时,由于发生了某种随机的事执行程序时,由于发生了某种随机的事件件(外部或内部外部或内部),引起,引起CPU暂时中断正在运暂时中断正在运行的程序,转去执行一段特殊的服务程序行的程序,转去执行一段特殊的服务程序(称称为中断服务程序或中断处理程序为中断服务程序或中断处理程序),以处理该,以处理该事件,该事件处理完后又返回被中断的程序事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。继续执行,这一过程称为中断。42中断源n引起引起CPU中断的事件,发出中断请求的来源中断的事件,发出中断请求的来源内部中断内部中断外部中断外部中断异常中断异常中断软件中断软件中断可屏蔽中断可屏蔽中断非屏蔽中断非屏蔽中断异常事件引起异常事件引起中断指令引起中断指令引起INTR中断中断NMI中断中断43引入中断的原因n提高数据传输率;提高数据传输率;n避免了避免了CPU不断检测外设状态的过程,不断检测外设状态的过程,提高了提高了CPU的利用率。的利用率。n实现对特殊事件的实时响应。实现对特殊事件的实时响应。44二、外部中断响应的一般过程n中断请求中断请求n中断判优及中断源识别中断判优及中断源识别n中断响应中断响应n中断处理(服务)中断处理(服务)n中断返回中断返回45中断请求n中断请求信号应保持到中断被处理为止;中断请求信号应保持到中断被处理为止;nCPU响应中断后,中断请求信号应及时撤销。响应中断后,中断请求信号应及时撤销。NMIINTR46中断源识别n软件查询法软件查询法n中断矢量法。由中断源提供中断类型号,中断矢量法。由中断源提供中断类型号,CPU根据类型确定中断源。根据类型确定中断源。47中断判优 要解决的问题要解决的问题n对同时产生的中断:对同时产生的中断:首先处理优先级别较高的中断;若优先级别相首先处理优先级别较高的中断;若优先级别相同,则按先来先服务的原则同,则按先来先服务的原则n对非同时产生的中断:对非同时产生的中断:低优先级的中断程序允许被高优先级的中断源低优先级的中断程序允许被高优先级的中断源所中断所中断中断嵌套中断嵌套48中断判优 控制方法控制方法 软件判优软件判优 顺序查询中断请求,先查询的先服务顺序查询中断请求,先查询的先服务 (即先查询的优先级别高)(即先查询的优先级别高)硬件判优硬件判优 链式判优、并行判优(中断向量法)链式判优、并行判优(中断向量法)49菊花链逻辑电路菊花链逻辑电路INTAinIREQINTR&=1 1INTAoutDB三态门三态门中中断断向向量量码码E外设接口外设接口中断确认中断确认菊花链菊花链逻辑电路逻辑电路50中断响应n向中断源发出向中断源发出INTA中断响应信号;中断响应信号;n保护断点。包括保护断点。包括FLAGS、CS和和IPn获得中断服务程序入口地址获得中断服务程序入口地址固定入口法固定入口法中断向量法中断向量法51中断处理中断服务子程序的特点:中断服务子程序的特点:n为为“远过程远过程”n用用IRET指令返回指令返回52中断服务子程序完成的工作n保护现场保护现场n开中断(开中断(STI)n中断处理中断处理n关中断(关中断(CLI)n恢复现场恢复现场n中断返回中断返回53中断返回n执行执行IRET指令,使指令,使IP、CS和和FLAGS从堆从堆栈弹出栈弹出54三、8088/8086中断系统内部中断内部中断外部中断外部中断除法错中断除法错中断溢出中断溢出中断单步中断单步中断软件中断软件中断非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断 256个中个中断源断源55NMIINTR中断逻辑中断逻辑软件中断指令软件中断指令溢出中断溢出中断除法错除法错单步中断单步中断非屏蔽中断请求非屏蔽中断请求中断控中断控制器制器8259APIC8086/8088CPU8086/8088CPU内部逻辑内部逻辑断点中断断点中断可可屏屏蔽蔽中中断断请请求求n430128086/8088中断源类型:中断源类型:56中断向量表 00000H003FFH1KB57中断向量表n存放各类中断的中断服务程序的入口地址存放各类中断的中断服务程序的入口地址n每个入口占用每个入口占用4 Bytes,低字为段内偏移,低字为段内偏移,高字为段基址高字为段基址n表的地址位于内存的表的地址位于内存的00000H003FFH,大小为大小为1KB,共,共256个入口个入口58中断向量表的初始化n将用户自定义的中断服务程序入口地址放入将用户自定义的中断服务程序入口地址放入向量表向量表n两种方法:两种方法:n直接写中断向量表n利用DOS中断功能调用:INT 25H n例:将中断向量码为例:将中断向量码为48H的服务程序入口的服务程序入口地址放入向量表地址放入向量表59中断向量表的初始化n直接写中断向量表直接写中断向量表 MOV AX,0MOV DS,AXMOV SI,48H*4MOV DX,OFFSET int_procMOV SI,DXMOV DX,SEG int_procMOV SI+2,DXn利用利用DOS中断功能调用:中断功能调用:INT 25HMOV DX,SEG int_procMOV DS,DXMOV DX,OFFSET int_procMOV AX,2548HINT 21HP319608088/8086内部中断响应过程特点:特点:n无无INTA周期周期n中断类型码固定或由指令给出中断类型码固定或由指令给出618088/8086内部中断响应过程响应过程步骤:响应过程步骤:PUSH FLAG 暂存暂存TF 清除清除IF和和TF PUSH CS PUSH IP 0:中断类型号中断类型号*4 I P 0:中断类型号中断类型号*4+2CS628088/8086外部中断响应过程可屏蔽中断(可屏蔽中断(INTR):):INTA周期周期1,PIC进行中断的排队和优先级处理进行中断的排队和优先级处理 INTA周期周期2,PIC把中断类型号放到把中断类型号放到DB上,由上,由CPU读入读入 PUSH FLAG 暂存暂存TF 清除清除IF和和TF PUSH CS PUSH IP 0:中断类型号中断类型号*4 I P 0:中断类型号中断类型号*4+2CS NMI中断响应过程与内部中断类似中断响应过程与内部中断类似中断响应和处中断响应和处理流程见理流程见p318638088/8086中断系统的优先级n优先级从高到低的顺序为:优先级从高到低的顺序为:n内部中断内部中断nNMI中断中断nINTR中断中断n单步中断单步中断64四、中断程序的一般结构n中断初始化中断初始化n确定中断类型码n保存原中断向量n设置自己的中断向量n开放中断(8259A和CPU)n主程序(随时可响应中断)主程序(随时可响应中断)n中断服务程序中断服务程序n远过程、保护断点、开放中断n中断处理n恢复断点n用IRET返回n退出主程序时一般要求恢复原中断向量退出主程序时一般要求恢复原中断向量657.4 7.4 中断控制器8259n略略66作业:n7.3n7.5n7.11n7.12n7.13n7.1467