1第6章输入输出及中断技术2§6.1输入输出系统38086/8088的寻址能力:内存:1MB端口:64KB编址方式:与内存统一编址独立编址4I/O映象方式和存储器映象方式存储器映象方式把一个I/O端口看作一个存储单元,相当于给每一个I/O端口分配一个存储器地址优点:指令丰富,I/O端口空间大,寻址的控制逻辑比较简单缺点:内存空间相对减小,地址译码电路比较复杂,存储器操作指令字节长,降低了I/O操作速度,分析程序困难。I/O接口的编址方式5端口与内存的统一编址特点:指令及控制信号统一内存地址资源减少内存地址960KBI/O地址64KB00000HF0000HFFFFFH6I/O映象方式I/O端口空间与存储器空间各自独立,互不干涉优点:I/O空间与存储器空间可分开设计,采用单独的I/O指令,程序清晰。I/O地址线较少,所以译码电路简单。I/O指令格式短,执行时间快7端口的独立编址特点:内存地址资源充分利用能够应用于端口的指令较少内存地址I/O地址00000HFFFFFHFFFFH0000H8统一编址和独立编址的示意图(b)独立编址方式I/O空间00HFFH00000H内存空间FFFFFH1M内存空间(a)统一编址方式00000H供I/O接口使用FFFFFHFFFFH0000H9I/O端口CPU数据状态控制外设I/O接口DB10I/O端口地址的译码常见的端口地址选择方法有两种:门电路组合法、译码器译码法11§6.3基本输入/输出方法12基本输入/输出方法无条件传送查询式传送中断方式传送直接存储器存取(DMA)程序控制方式13一、无条件传送CPU可在任何时刻与I/O设备交换数据,对CPU而言,I/O设备总是处于“准备好”状态无条件传送方式又称同步方式,是最简单的一种I/O控制方式多用于CPU与低速接口之间的信息交换。如开关、继电器、LED显示器,它们总是被认为处于“待命”状态14开关K通过三态门接口与系统的连接15二、查询工作方式查询方式是有条件的传送控制方式所谓查询,就是询问外部设备的工作状态,通过这一状态来判定外设是否已具备了与CPU交换数据的条件程序查询方式的硬件接口部分应包括数据端口,状态端口,端口选择及控制逻辑等三个部分程序对每个I/O设备的查询,是通过检查该设备的状态标志来实现的查询方式特点:I/O操作由CPU启动,即CPU是主动的而I/O是被动的,所有的传送都与程序的执行同步16查询工作方式优点:软硬件比较简单缺点:CPU效率低,数据传送的实时性差,速度较慢READY?进行一次数据交换读入并测试外设状态YN传送完?Y结束N开始每满足一次条件只能进行一次数据传送18对多个外设的查询最简单的查询方法是用输入指令IN逐个读取I/O设备的状态标志,并对状态标志进行相应的测试19三、中断控制方式中断方式:CPU对一个随机的请求进行处理的过程特点:外设在需要时向CPU提出请求,CPU再去为它服务。服务结束后或在外设不需要时,CPU可执行自己的程序优点:CPU效率高,实时性好,速度快。缺点:程序编制相对较为复杂20以上三种I/O方式的共性信息的传送均需通过CPU软件:外设与内存之间的数据传送是通过CPU执行程序来完成的硬件:I/O接口和存储器的读写控制信号、地址信号都是由CPU发出的。缺点:程序的执行速度限定了传送的最大速度21四、DMA控制方式特点:外设直接与存储器进行数据交换,CPU不再担当数据传输的中介者;总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制信号均由DMAC提供。22DMA控制方式DMAC外设接口CPUQRDMEMDACKHOLDHLDA…BUS控制信号地址信号23DMA控制方式的工作过程外设向DMA控制器发出“DMA传送请求”信号DRQ;DMA控制器收到请求后,向CPU发出“总线请求”信号HOLD;CPU在完成当前总线周期后会立即发出HLDA信号,对HOLD信号进行响应;DMA控制器收到HLDA信号后,就开始控制总线,并向外设发出DMA响应信号DACK24§6.4中断技术25一、中断的基本概念中断:CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。26中断源引起CPU中断的事件,发出中断请求的来源。内部中断外部中断异常中断软件中断可屏蔽中断非屏蔽中断异常事件引起中断指令引起INTR中断NMI中断27二、外部中断响应的一般过程中断请求中断源识别及中断判优中断响应中断处理(服务)中断返回281、中断请求中断请求是由中断源发出的请求服务的信号中断源:能够发出中断请求信号的来源中断源通常有如下几种:一般的I/O设备,如键盘、打印机等。故障源,包括硬件故障及软件故障,如电源掉电、存储器故障、运算溢出等中断源能够产生中断请求信号有两个条件:中断源自身工作已经“准备就绪”CPU允许该中断源申请中断292、中断判优在中断系统中,根据中断源的轻重缓急,为每个中断源规定了一个服务优先级别,称中断优先级,或中断优先权中断优先权排队一般有两种方法,即软件查询法和硬件排队法软件查询法:用软件查询中断源,根据查询的顺序先后来确定中断源的优先级。先查询的优先级就高,后查询的优先级就低,只要改变查询次序,就可以改变中断源的中断优先级硬件排队法:用硬件判优逻辑电路来确定申请中断中的最高优先级,系统中各中断源的优先级别是由它们在判优电路中的位置决定的30中断判优软件判优顺序查询中断请求,先查询的先服务(即先查询的优先级别高)硬件判优链式判优、并行判优(中断向量法)313、中断响应中断响应条件:外部设备有中断请求CPU自身允许中断没有更高级的中断正在被服务CPU在每条指令结束后响应中断在中断响应周期,硬件自动完成一些必要的操作:关中断保护断点将中断服务程序的入口地址送入程序计数器,从而实现转入相应的中断服务程序324、中断处理执行中断服务子程序中断服务子程序的特点:为“远过程”用IRET指令返回33中断服务子程序完成的工作关中断,保护断点,找入口地址保护软件现场(参数)开中断(STI)中断处理关中断(CLI)恢复现场中断返回345、中断返回执行IRET指令,使IP、CS和FLAGS从堆栈弹出358088可以处理256种不同类型的中断,类型号为0~2558088的中断分为内部中断和外部中断两大类外部中断:由CPU外部引起的中断,需要外设产生一个信号来通知CPU,包括非屏蔽中断NMI和可屏蔽中断INTR内部中断:由CPU状态的改变或执行中断指令而产生的中断,它不受IF的控制,主要用于功能调用、程序调试和意外情况处理。包括:除法错中断、单步中断、溢出中断、软件中断三、8088/8086中断系统36内部中断外部中断异常中断软件中断非屏蔽中断可屏蔽中断256个中断源除法错中断溢出中断单步中断…NMIINTR中断逻辑软件中断指令溢出中断除法错单步中断非屏蔽中断请求中断控制器8259APIC8086/8088CPU内部逻辑断点中断可屏蔽中断请求n430128086/8088中断源类型:38内部中断与外部中断的主要区别外部中断需要从数据总线上读取中断类型码,而内部中断的中断类型码是指令的一部分外部中断受IF的控制,IF直接控制中断允许触发器。而内部中断不受IF的控制内部中断的优先级别比外部中断要高(除单步中断外)中断源的优先级别由高到低顺序:内部中断、NMI、INTR、单步中断39中断向量表存放各类中断的中断服务程序的入口地址(CS:IP);每个入口占用4Bytes,低字为段内偏移,高字为段基址;表的地址位于内存的00000H~003FFH,大小为1KB,共256个入口。40中断向量表:中断服务程序的入口地址表┇┇00000H003FFH段地址CS高8位偏移地址IP低8位偏移地址IP高8位段地址CS低8位012┇34×256=1024=1K1023入口地址41中断向量地址的计算向量表所在的段地址=0存放子程序入口的单元的偏移地址=n×4例:已知中断类型码为21H的中断,其中断向量存放在?4×21H=84H,所以存放在0000H:0084Hp27442§6.5可编程中断控制器8259A438259A简介8259A是中断管理芯片8259A的主要功能:具有8级优先权控制,通过芯片级联可扩展至64级优先权控制每一级中断均可通过编程屏蔽或允许在中断响应周期可提供相应的中断类型号有多种工作方式,可通过编程选择可与CPU直接连接,不需要外加硬件电路448259A的引线及内部结构中断请求寄存器IRR:寄存所有IR输入线输入的中断请求信号,即保存正在请求服务的中断级中断服务寄存器ISR:保存当前被CPU服务的中断级,也就是记录正在被处理的中断请求中断屏蔽寄存器IMR:对各中断源的中断请求信号(IR0~IR7)实现开关控制458259A的工作过程(1)某条或几条中断请求线(IR0~IR7)有中断申请,变为高电平,使中断请求寄存器IRR的相应位置“1”(2)IMR对IRR屏蔽。未被屏蔽的请求信号经优先权电路判别最高优先级,再经由优先级方式确定没有更高级优先权的中断,则8259A的INT端输出为“1”,向CPU提出中断请求46(3)CPU响应中断后发出中断响应信号。在中断响应过程中,CPU要发出两次INTA信号。当8259A收到第一个INTA信号后,ISR中当前被选中的最高优先级对应的那一位置“1”,同时IRR中的相应位被清0,表示该位上的中断请求已经被CPU所接受(4)8259A接收到第二INTA信号后,驱动数据总线将对应的中断类型码输出(5)如果是自动结束中断方式(AEOI),则在第二个INTA脉冲结束时将ISR中相应置“1”的位复位,否则该位的“1”将一直保持,直到CPU发出EOI命令为止478259A与标准总线的连接48498259A的工作方式四种主要的工作方式:全嵌套循环优先级特定屏蔽程序查询方式四种从属的工作方式:中断结束方式读状态中断请求触发方式缓冲方式两大工作类型:单片工作多片级连工作508259A的工作方式-全嵌套方式8259A在初始化工作完成后若未设定其它的工作方式,就自动进入全嵌套方式。全嵌套方式的特点:中断请求的优先级固定,其顺序是IR0最高,逐次减小,IR7最低。中断服务寄存器ISR保存优先权电路确定的优先级状态,相应位置“1”,并且一直保持这个服务“记录”状态,直到CPU发出中断结束命令为止在ISR位置期间,不再响应同级及较低级的中断请求,而高级的中断请求如果CPU开放重点的话仍能够得到中断服务IR7~IR0的中断请求输入可分别由中断屏蔽寄存器IMR的D7~D0的相应位屏蔽与允许,对某一位的屏蔽与允许操作不影响其它位的中断请求操作全嵌套工作方式由ICW4的D4=0来确定51该方式适用于多片级连同(普通)全嵌套方式的区别:当某从片的一个中断被CPU响应后,该从片中的高级中断仍可提出申请。在某个中断源退出中断服务程序之前,CPU用软件检查它是否是这个从片中的唯一中断。只有唯一,才能把一个非特殊EOI命令送至主片,从而结束此从片的中断(何时结束主片中断?)8259A的工作方式-特殊全嵌套方式528259A的工作方式-循环优先级方式两种:自动循环优先级方式、特殊循环优先级方式自动循环各设备优先级相同,当某一个设备受到服务之后,它的优先级就自动地排到最后。优先级由高到低的顺序:自动循环优先级方式由OCW2的R=1、SL=0来确定53特殊循环通过编程来确定某一设备为最低优先级。特殊循环优先级方式由OCW2的R=1、SL=1来确定,而L2L1L0用于指定最低优先