6__输入输出和中断

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

6输入输出和中断6.1输入输出的基本概念输入/输出(I/O)是计算机与外部世界交换信息必须具备的功能,通过键盘、鼠标、BCD拨码盘等输入设备将程序、数据等信息送入计算机的过程称为输入,而通过显示器、指示灯、打印机等输出设备将处理结果送出的过程称为输出。由于目前所使用的外设种类繁多,有机械式、电动式、电子式等形式,它们的信息类型也各有差异,可以是数字量、模拟量或开关量,因此外设和CPU之间通常是不能直接连接的,而必须通过接口电路相连接。6.1.1I/O接口的功能接口是将外设连接到总线上的一组逻辑电路的总称。接口电路应具有以下功能:(1)地址译码与设备选择所有外设都通过I/O接口挂接在系统总线上,在任一时刻总线只允许一个外设与CPU进行数据传送。因此,只有通过地址译码选中的I/O接口允许与总线相通,而未被选中的I/O接口呈现为高阻状态,与总线隔离。(2)缓冲锁存数据为解决CPU和外设之间的速度差异,接口应具有数据缓冲、锁存能力。(3)信息的输入输出通过I/O接口,CPU可以从外部设备输入各种信息,也可将信息输出到外设;CPU通过向I/O接口写入命令可以控制I/O接口的工作;还可以随时监测I/O接口和外设的工作状态;必要时外设还可以通过I/O接口向CPU发出中断请求。(4)信息转换当外设的电平不符合CPU的要求时,需由I/O接口进行电平转换。当外设以电流量的形式输入时,需要I/O接口将其转换成电压量的形式与CPU相连接。有些外设以串行方式发送或接收数据时,需要接口电路将其转换成并行数据再与CPU相连接。因此,I/O接口应具备信息格式转换、电平变换的能力。6.1.2I/O接口的编址方式CPU与I/O接口进行信息交换实际上是通过I/O接口内部的一组寄存器实现的(简单的接口也可由三态门构成,但要求传输过程未结束前信号保持不变),这些寄存器称为I/O端口(I/OPort)。I/O端口有数据端口、状态端口和命令(或控制)端口三类。根据需要,一个I/O接口可能包含全部三类端口,也可能只包含其中的一类或二类端口。CPU通过数据端口从外设读入数据或向外设输出数据,通过状态端口读入设备的当前状态,通过命令(控制)端口向外设发出控制命令。为了与I/O接口的信息交换,CPU就像为内存单元分配地址那样为每个端口分配一个地址(称为端口地址)。当一个I/O接口有多个端口时,为管理方便,通常是为其分配一个连续的地址块,这个地址块中最小的那个地址称为接口的基地址。所有的端口都需要编址,常用的编址方式有两种:一是I/O端口与内存单元统一编址;二是I/O端口独立编址。(1)I/O端口与内存统一编址该编址方式又称为存储器映射编址方式,即将每个I/O端口都当作一个存储单元对待。CPU将地址空间的一部分划给I/O接口,在此范围内,给每个端口分配一个具体的地址,故每个端口地址将占用存储器的一个地址。统一编址的优点是:不需要设置专门的访问I/O端口的指令,可以用访问外部RAM的指令来访问I/O端口,为访问外设带来了很大的灵活性;端口地址可以有较大的编址空间,安排较灵活。统一编址的缺点是:I/O接口占据了一部分地址空间,减少了内存可用的地址范围;从指令形式上不易区分当前指令是对RAM进行操作还是对端口进行操作。(2)I/O端口独立编址I/O端口独立编址时,存储单元地址空间和端口地址空间是相互独立的,CPU在寻址存储单元和端口时,使用不同的控制信号,操作的指令形式也是不一样的。独立编址的优点是:不占用存储器地址空间,因而不会减少存储器容量;由于使用专门的输入/输出指令,因而易于和访问存储器的指令相区别,程序可读性强。独立编址的缺点是:由于对端口的操作只有输入/输出指令可用,且这些指令的功能单一,因而编程的灵活性小;在硬件上需要对外设端口的译码芯片,增加了成本,同时CPU的引脚上也要有对接口进行操作的控制线。6.1.3接口电路的基本构成(1)接口的基本构成接口的基本构成如图6-1所示。其各部分功能如下:图6-1接口的基本构成①数据输入/输出寄存器——暂存输入/输出的数据②命令寄存器——存放控制命令,用来设定接口功能、工作参数和工作方式③状态寄存器——保存外设当前状态,以供CPU读取④译码电路——根据地址总线信息选中某一个寄存器。⑤控制逻辑——控制各部分协调工作。(2)接口电路传送的信息图6-2为CPU通过接口与外设的连接示意图。通过接口传送的信息包括数据信息、状态信息和控制信息。图6-2CPU与外设的连接图①数据信息a.数字量:通常以8位或16位的二进制数以及ASCII码的形式传输,主要指由键盘、磁带机、磁盘等输入的信息或主机送给打印机、显示器、绘图仪等的信息。b.开关量:用“0”和“1”来表示两种状态,如开关的通/断。c.模拟量:模拟的电压、电流或者非电量。对模拟量输入而言,需先经过传感器转换成电信号,再经A/D转换器变成数字量;如果需要输出模拟控制量的话,就要进行上述过程的逆转换由图6-2可以看出,这些数据信息在输入时由外设经过接口送给CPU,而在输出时由CPU经过接口送到外设。这些数据信息可以是并行的,也可以是串行的。②状态信息状态信息传输的方向是单向的,由外设通过接口送给CPU。状态信息反映了外设当前的工作状态,CPU通过读状态信息检测外设的工作状况。对于输入设备,通常用“READY”信号来表示是否准备好要输入的数据,对于输出设备,通常用“BUSY”表示输出设备当前处于“忙”状态还是“空闲”状态,如为忙,则CPU不能向该设备输出数据,如为空闲,则CPU可以向该设备输出数据。③控制信息控制信息传输的方向也是单向的,它包括CPU发出的读/写信号和从外设发来的中断请求信号,CPU使用控制信息来控制外设的工作。6.2输入/输出的工作方式CPU与外设之间数据的输入输出方式主要有无条件传送方式、查询传送方式、中断传送方式和直接存储器存取(DMA)方式4种。6.2.1无条件传送方式这种数据传送方式主要用于外部控制过程的各种动作时间是固定的且是已知的情况,针对的是一些简单的、随时准备好的外设。也就是说在这些设备工作时,随时都可以接收CPU输出的数据或它们的数据随时都可以被CPU读取。由于无条件传送方式任何时候都认为外设是准备好的,而实际情况并非都如此,满足这种条件的设备较少,故在实际应用中较少使用。图6-3为无条件输入方式应用实例,CPU可以随时读入开关的状态,开关闭合时,对应的数据位为0,开关打开时,对应的数据位为1。图6-4为无条件输出方式的应用实例,当某输出数据位为1时,对应的发光二极管点亮,反之,则熄灭。图6-3无条件输入方式图6-4无条件输出方式6.2.2查询传送方式采用无条件传送方式时,要求外设总是准备好的,实际上大多数外设是做不到的,原因是CPU的执行速度通常要大大高于外设。为了避免传送过程中发生错误,可以采用查询传送方式。在查询传送方式中,CPU首先要查询外设是否准备好或空闲,只有当外设准备好或空闲时,CPU才发出访问命令,实现数据传送。查询输入方式的流程图如图6-5所示,它的接口电路如图6-6所示。图6-6中,当输入设备准备好一个数据时,就自动发出选通信号STB,该信号一方面将准备好的数据送入数据锁存器供CPU读取,另一方面将状态触发器Q置“1”,表示已经准备好数据。图6-5查询输入方式流程图CPU在读入数据之前,查询输入设备的状态信息,实际上就是执行一条读指令,通过三态缓冲器读入Q的状态,当读到的Q值为“1”时,表示外设已经准备好,CPU开始执行读指令读入数据,该指令一方面将输入设备送入锁存器中的数据经由三态缓冲器送上数据总线、读入CPU内,另一方面还将D触发器清“0”,表示数据已经取走,等输入设备准备好下一个数据时,再将其置“1”。图6-6查询输入的接口电路输出方式的流程图如图6-7所示,它的接口电路如图6-8所示。在图6-8中,CPU在输出数据之前,先查询输出设备的状态,如为“忙”(即“BUSY”=1),则表示输出设备正在工作,不能接收来自CPU的数据,故此时CPU不可向该设备输出数据,如为“闲”(即“BUSY”=0),则表示该设备空闲,此时CPU可执行一条输出指令,该指令一方面使锁存器的选通信号有效,CPU送来的数据进入锁存器,然后送往输出设备,另一方面,还将D触发器再次置“1”,即处于“忙”状态,使得CPU不能再发新数据给该输出设备。当输出设备将收到的数据处理完后,产生一个复位信号,将D触发器清“0”,表示该设备“闲”,才又可以接收新数据。图6-7查询输出方式流程图查询方式的优点是软件比较简单,但CPU效率低(CPU需花费大量的时间在查询外设的状态上),数据传送的实时性差,速度较慢。对于许多实时性要求较高的外设来说,不能满足要求。为了提高CPU的利用率和进行实时数据处理,CPU常采用中断方式与外设交换数据。图6-8查询输出的接口电路6.2.3中断传送方式在中断传送方式中,当外设准备好交换的数据后,由外设主动向CPU提出数据传送的请求,在外设提出申请以前CPU一直执行本身的某个程序,只是在执行的过程中收到外设传送数据的请求后,才中断自身程序的执行,而暂时去进行对外设数据的传送,等数据传送完毕后,仍返回到原来被中断的程序处继续向下执行。由于在中断方式中,CPU不需要花很多时间去等待外设准备数据,而是在外设准备数据的过程中,执行本身的程序,因而大大提高了工作效率。有关中断的概念、工作原理及中断源分类等将在6.3节详细讨论。6.2.4直接存储器存取方式在查询中断方式中,CPU调用中断服务程序前必须保护当前程序的“断点”位置,同时中断服务程序结束时必须恢复程序“断点”,以便能够正确返回,此外,有时还必须保护部分CPU内部寄存器的值,因此占用CPU的资源。由于每条指令均需经过取指与执行的过程,一般来说,传送一个字节需几十到几百微妙,由此可估算出传送速率约为每秒几十KB。这种传送速率对于一些高速外设及批量数据交换(如磁盘与内存的数据交换)来说是远远不够的。对于高速数据传送的情况,希望外设不通过CPU而直接与存储器进行数据交换,这就是直接存储器存取(DMA)方式,即通过专门的硬件电路来控制存储器与外设直接进行数据交换。DMA方式提供了一条I/O设备与主存直接交换数据的通道,若I/O接口的DMA控制器(DMAC)提出请求时,CPU将总线控制权让给DMA控制器,DMA控制器通过总线直接控制I/O设备与主存交换信息。在DMA控制器控制总线期间,CPU仍可进行内部操作,如算术运算等。(1)DMA控制器的功能在DMA方式下,CPU应暂时放弃系统总线的控制权,而改由DMA控制器控制,这就要求DMA控制器具有以下功能:①能接收外设送来的DMA请求,并能向CPU发出相应的总线请求信号(HOLD),请求CPU放弃总线的控制权。②当CPU响应总线请求并发出响应信号(HLDA)后,能接管总线的控制权,实现对总线的控制。③能发出存储器地址信号,实现对内存单元寻址,并能自动修改地址指针。④能向存储器或外设发出读写控制信号。⑤能决定传送的字节数,并判断DMA传送是否结束。⑥在DMA传送结束后,能向CPU发出DMA结束信号并交出总线控制权,由CPU接管。(2)DMA控制器的工作过程DMA控制器的工作过程如图6-9所示,大致分为以下几部分:①当外设准备好,可以进行DMA传送时,外设向DMA控制器发出DMA传送请求信号(DRQ)。②DMA控制器收到请求后,向CPU发出总线请求信号HOLD。③CPU在现行的机器周期或总线周期结束后,会立即响应DMA请求。即将地址总线、数据总线和有关的控制总线均置为高阻态,放弃对总线的控制权,并向DMA控制器发出总线响应信号HLDA。④DMA控制器收到HLD信号后,就开始控制总线,并向外设发出DMA响应信号DACK。⑤DMA控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据传送。⑥每传送一个字节,DMA控制器内的地址寄存器内容自动加1,字节计数器自动减1,如字节计数器不为0,则重复进行数据传送;如字节计数器为0,则结束本次DMA传送,然后D

1 / 58
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功