首页 > 知识点讲解
       输入/输出控制
知识路径: > 计算机系统基础知识 > 计算机组成及主要部件的基本工作原理 > I/O接口的功能、类型和特点 > 
被考次数:18次     被考频率:高频率     总体答错率:46%     知识难度系数:     
相关知识点:32个      
        从硬件角度看,输入/输出(I/O)设备是电子芯片、导线、电源、电子控制设备、电机等组成的物理设备,从软件角度只关注输入/输出设备的编程接口。
               I/O设备概述
               可将I/O设备分为块设备和字符设备两类。块设备把信息存放在固定大小的块中,每个块都有自己的地址,独立于其他块,可寻址。例如磁盘、USB闪存、CD-ROM等。字符设备以字符为单位接收或发送一个字符流,字符设备不可以寻址。例如打印机、网卡、鼠标键盘等。
               I/O设备一般都包含设备控制器,一般以芯片的形式出现,如南桥芯片。不同的控制器可以控制不同的设备。南桥芯片中包含了多种设备的控制器,如硬盘控制器、USB控制器、网卡、声卡控制器等。I/O设备通过总线以及卡槽与计算机其他部件进行连接,如PCI、PCI-E、SATA、USB等。
               不同设备控制器的操作控制通过专门的软件即驱动程序进行控制。每个控制器都有几个寄存器与CPU进行通信。通过写入这些寄存器,可以命令设备发送或接受数据,开启或关闭。通过读这些寄存器就能知道设备的状态。由于寄存器数量和大小是有限的,所以设备一般会有一个RAM性质的缓冲区,来存放一些数据。例如硬盘的读写缓存,显卡的显存等。一方面提供数据存放,另一方面是提高I/O操作的速度。
               CPU与I/O设备控制器中的寄存器或数据缓冲区如何进行通信?存在以下两个可选方案:
               (1)为每个控制器分配一个I/O端口号,所有的控制器可以形成一个I/O端口空间,这些信息存放在内存中,一般程序不能访问,操作系统则通过特殊的指令和端口号来从设备读取或是写入数据。早期计算机基本都是这种方式,通常使用汇编语言进行操作。
               (2)将所有控制器的寄存器映射到内存空间,于是每个设备的寄存器都有一个唯一的地址。这种称为内存映射I/O。由于不需要特殊的指令控制,对待I/O设备和其他普通数据访问方式是相同的,因此可以使用C语言来编程。
               也可以将上述两种方式相结合,例如,寄存器拥有I/O端口,而数据缓冲区则映射到内存空间。
               CPU无论是从内存还是I/O设备读取数据,都需要把地址放到地址总线上,然后向控制总线传递一个读信号,还要用一条信号线来表示是从内存还是I/O读取数据。
               程序控制方式
               程序控制I/O是指外设数据的输入/输出过程是在CPU执行程序的控制下完成的。这种方式分为无条件传送和程序查询方式两种情况。
               (1)无条件传送。在此情况下,外设总是准备好的,它可以无条件地随时接收CPU发来的输出数据,也能够无条件地随时向CPU提供需要输入的数据。
               (2)程序查询方式。通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。根据这种状态,CPU有针对性地为外设的输入/输出服务。
               通常,一个计算机系统中可以存在着多种不同的外设,如果这些外设是用查询方式工作,则CPU应对这些外设逐一进行查询,发现哪个外设准备就绪就对该外设服务。这种工作方式有两大缺点:一是降低了CPU的效率;二是对外部的突发事件无法做出及时响应。
               计算机系统中的CPU是稀缺资源,应尽量提高其利用率,减少等待I/O操作的时间。
               中断方式
               在中断方式下,I/O设备工作时CPU不再等待,而是进行其他的操作,当I/O设备完成后,通过一个硬件中断信号通知CPU,CPU再来处理接下来的工作。
               利用中断方式完成数据的输入/输出过程为:当系统与外设交换数据时,CPU无须等待也不必去查询I/O设备的状态,而是处理其他任务。当I/O设备准备好以后,就发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。与程序控制方式相比,中断方式因为CPU无须等待而提高了效率。
               在系统中具有多个中断源的情况下,常用的处理方法有多中断信号线法(multiple interrupt lines)、中断软件查询法(software poll)、菊花链法(daisy chain)、总线仲裁法和中断向量表法。
               (1)多中断信号线法。每个中断源都有属于自己的一根中断请求信号线向CPU提出中断请求。
               (2)中断软件查询法。当CPU检测到一个中断请求信号以后,即转入到中断服务程序去轮询每个中断源以确定是谁发出了中断请求信号。对各个设备的响应优先级由软件设定。
               (3)菊花链法。软件查询的缺陷在于花费的时间太多。菊花链法实际上是一种硬件查询法。所有的I/O模块共享一根共同的中断请求线,而中断确认信号则以链式在各模块间相连。当CPU检测到中断请求信号时,则发出中断确认信号。中断确认信号依次在I/O模块间传递,直到发出请求的模块,该模块则把它的ID送往数据线由CPU读取。
               (4)总线仲裁法。一个I/O设备在发出中断请求之前,必须先获得总线控制权,所以可由总线仲裁机制来裁定谁可以发出中断请求信号。当CPU发出中断响应信号后,该设备即把自己的ID发往数据线。
               (5)中断向量表法。中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号(INTR)以后,由中断控制器(INTC)确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地址,同时INTC把中断请求信号提交给CPU,如下图所示。中断源的优先级由INTC来控制。
               
               中断向量表法
               在具有多个中断源的计算机系统中,各中断源对服务的要求紧迫程度可能不同。在这样的计算机系统中,就需要按中断源的轻重缓急来安排对它们的服务。
               在中断优先级控制系统中,给最紧迫的中断源分配高的优先级,而给那些要求相对不紧迫(例如几百微秒到几毫秒)的中断源分配低一些的优先级。在进行优先级控制时解决以下两种情况。
               (1)当不同优先级的多个中断源同时提出中断请求时,CPU应优先响应优先级最高的中断源。
               (2)当CPU正在对某一个中断源服务时,又有比它优先级更高的中断源提出中断请求,CPU应能暂时中断正在执行的中断服务程序而转去对优先级更高的中断源服务,服务结束后再回到原先被中断的优先级较低的中断服务程序继续执行,这种情况称为中断嵌套,即一个中断服务程序中嵌套着另一个中断服务程序。
               DMA方式
               在计算机与外设交换数据的过程中,无论是无条件传送、利用查询方式传送还是利用中断方式传送,都需要由CPU通过执行程序来实现,这就限制了数据的传送速度。
               直接内存存取(Direct Memory Access,DMA)是指数据在内存与I/O设备间的直接成块传送,即在内存与I/O设备间传送一个数据块的过程中,不需要CPU的任何干涉,只需要CPU在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做别的事情。
               DMA传送的一般过程如下图所示。
               
               DMA过程示意图
               (1)外设向DMA控制器(DMAC)提出DMA传送的请求。
               (2)DMA控制器向CPU提出请求,其请求信号通常加到CPU的保持请求输入端HOLD上。
               (3)CPU在完成当前的总线周期后立即对此请求作出响应,CPU的响应包括两个方面的内容:一方面,CPU将有效的保持响应信号HLDA输出加到DMAC上,告诉DMAC它的请求已得到响应;另一方面,CPU将其输出的总线信号置为高阻,这就意味着CPU放弃了对总线的控制权。
               (4)此时,DMAC获得了对系统总线的控制权,开始实施对系统总线的控制。同时向提出请求的外设送出DMAC的响应信号,告诉外设其请求已得到响应,现在准备开始进行数据的传送。
               (5)DMAC送出地址信号和控制信号,实现数据的高速传送。
               (6)当DMAC将规定的字节数传送完时,它就将HOLD信号变为无效并加到CPU上,撤销对CPU的请求。CPU检测到无效的HOLD就知道DMAC已传送结束,CPU就送出无效的HLDA响应信号,同时重新获得系统总线的控制权,接着DMA前的总线周期继续执行下面的总线周期。
               在此再强调说明,在DMA传送过程中无须CPU的干预,整个系统总线完全交给了DMAC,由它控制系统总线完成数据传送。在DMA传送数据时要占用系统总线,根据占用总线方法的不同,DMA可以分为中央处理器停止法、总线周期分时法和总线周期挪用法等。无论采用哪种方法,在DMA传送数据期间,CPU不能使用总线。
               输入/输出处理机
               DMA方式的出现减轻了CPU对I/O操作的控制,使得CPU的效率显著提高,而通道的出现则进一步提高了CPU的效率。
               通道是一个具有特殊功能的处理器,又称为输入/输出处理器(Input/Output Processor),它分担了CPU的一部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传送。
               通道方式大大提高了CPU的工作效率,然而这种效率的提高是以增加更多的硬件为代价的。
               外围处理机(Peripheral Processor Unit,PPU)方式是通道方式的进一步发展。PPU是专用处理机,它根据主机的I/O命令,完成对外设数据的输入/输出。在一些系统中,设置了多台PPU,分别承担I/O控制、通信、维护诊断等任务。从某种意义上说,这种系统已变成分布式的多机系统。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2014年下半年
   嵌入式系统设计..
   上午试卷 综合知识
第61题
选择题
如果I/O设备与存储设备进行数据交换不经过CPU来完成,这种数据交换方式是(61)。

31%
   2012年下半年
   嵌入式系统设计..
   上午试卷 综合知识
第5题
选择题
在I/O设备与主机间进行数据传输时,CPU只需在开始和结束时作少量处理,而无需干预数据传送过程的是(5)方式。

47%
>>  更多  本知识点历年真题
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有