"); //-->
1、什么是I/O控制器
由于CPU无法直接控制I/O设备的机械部件,因此I/O设备还要有个电子部件作为CPU和I/O设备机械部件之间的“中介”,用于实现CPU对设备的控制,这个电子部件就是I/O控制器,又称为设备控制器。
I/O控制器是控制计算机输入输出的一个最基本的控制系统,可指挥计算机的各个部件按照指令的功能要求协调工作的部件。它由指令寄存器IR(InstructionRegister)、程序计数器PC(ProgramCounter)和操作控制器OC(OperationController)三个部件组成,对协调整个电脑有序工作极为重要。
下面小编就从功能和控制方式两个方面带大家进一步了解I/O控制器,想学习的客户朋友就一起看下去吧,绝对干货哦!
2、I/O控制器的功能
l 接收设备CPU指令:CPU的读写指令和参数存储在控制寄存器中
l 向CPU报告设备的状态:I/O控制器中会有相应的状态寄存器,用于记录I/O设备的当前状态。(比如1代表设备忙碌,0代表设备就绪)
l 数据交换:数据寄存器,暂存CPU发来的数据和设备发来的数据,之后将数据发给控制寄存器或CPU。
l 地址识别:类似于内存的地址,为了区分设备控制器中的各个寄存器,需要给各个寄存器设置一个特定的地址。I/O控制器通过CPU提供的地址来判断CPU要读写的是哪个寄存器。
这里向大家简单介绍常见的几种I/O控制方式,包括程序直接控制方式、中断驱动方式、DMA(直接存储方式)、通道控制方式。
①程序直接控制方式
CPU向I/O模块发出读写指令,CPU会从状态寄存器中读取I/O设备的状态,如果是忙碌状态就继续轮询检查状态,如果是已就绪,就代表I/O设备已经准备好,可以从中读取数据到CPU寄存器中,读到CPU后,CPU还要往存储器(内存)中写入数据,写完后再执行下一套指令。
优点:实现简单。在读写指令之后,加上实现轮询检查的一系列指令即可。
缺点:CPU和I/O设备只能串行化工作,CPU需要一直轮询检查,长期处于忙等状态,CPU利用率很低。
②中断驱动方式
中断驱动方式的思想是允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作。I/O控制器从CPU接收一个读命令,然后从外围设备读数据,一旦数据读入到该I/O控制器的数据寄存器,便通过控制线给CPU发出一个中断信号,表示数据已准备好,然后等待CPU请求该数据。I/O控制器收到CPU发出的取数据请求后,将数据放到数据总线上,传到CPU的寄存器中。至此,本次I/O操作完成,I/O控制器又可开始下一次I/O操作。这样就使得CPU与I/O设备能够并行工作。
优点:与程序直接控制方式相比,在中断驱动方式中,I/O控制器会通过中断信号主动报告I/O已完成,CPU不再需要不停的轮询。CPU和I/O设备可并行工作,CPU利用率得到明显提升。
缺点:由于数据中的每个字在存储器与I/O控制器之间的传输都必须经过CPU,这就导致了中断驱动方式仍然会消耗较多的CPU时间。
DMA方式的数据流向是从设备直接放入内存(设备→内存),或者是从内存直接到设备(内存→设备),不再使用CPU作为中间者。CPU在读写数据前要指明要读入多少数据、数据要存放在内存中的什么位置、数据放在外部磁盘的什么位置等问题,然后DMA控制器会根据CPU提出的要求完成数据的读写操作。当整块数据的传输完成后,才向CPU发出中断信号。
优点:数据传输效率以“块”块为单位,仅仅在传送一个或多个数据块的开始和结束时,才需要CPU的干预,CPU的介入性进一步降低。同时。CPU和I/O设备的并行性进一步提升。
缺点:CPU发出一条指令,只能读或写一个或多个连续的数据块。如果读写的数据块不是连续存放的而是离散的,那么CPU要分别发出多条I/O指令,进行多次中断处理才能完成。
④通道控制方式
通道是一种硬件,可以理解为“低配版的CPU”。通道与CPU相比的话,CPU能够处理的指令种类比较多,而通道只能执行单一指令。使用这种控制方式,CPU干涉频率极低,通道会根据CPU的指令执行响应程序,只有完成一组数据块的读写后才需要发出中断信号让CPU干预。
优点:CPU、 通道、I/O设备可并行工作,资源利用率极高。
缺点:实现复杂,需要专门的通道硬件支持。
懵逼了的小伙伴快看这里!贴心小编为你奉上总结表格,一目了然呢!
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
eleaction01 阅读:6374