I/O

I/O设备与主机间进行数据输入输出主要有直接程序控制方式中断方式DMA方式通道控制方式


直接程序控制方式

特点:CPU直接通过I/0指令对I/0接口进行访问操作,主机与外设之间交换信息的每个步骤均在程序中表示出来,整个输入输出过程是由CPU执行程序来完成的。


中断方式

特点:当I/O接口准备好接收数据或向CPU传送数据时,就发出中断信号通知CPU。对中断信号进行确认后,CPU保存正在执行的程序的现场,转而执行提前设置好的I/O中断服务程序,完成一次数据传送的处理。这样,CPU就不需要主动查询外设的状态,在等待数据期间可以执行其他程序,从而提高了CPU的利用率。

采用中断方式管理I/O设备,CPU和外设可以并行地工作。

虽然中断方式可以提高CPU的利用率,能处理随机事件和实时任务,但一次中断处理过程需要经历保存现场、中断处理和恢复现场等阶段,需要执行若干条指令才能处理一次中断事件,因此这种方式无法满足高速的批量数据传送要求。


DMA方式

(Direct Memory Access,直接内存存取)

基本思想:通过硬件控制实现主存与I/O设备间的直接数据传送,数据的传送过程由DMA控制器(DMAC)进行控制,不需要CPU的干预。

在DMA方式下,需要CPU启动传送过程,即向设备发出“传送一块数据”的命令。在传送过程结束时,DMAC通过中断方式通知CPU进行一些后续处理工作。

DMA方式简化了CPU对数据传送的控制,提高了主机与外设并行工作的程度,实现了快速外设和主存之间成批的数据传送,使系统的效率明显提高。


通道控制方式

通道是一种专用控制器,它通过执行通道程序进行I/O操作的管理,为主机与I/O设备提供一种数据传输通道。用通道指令编制的程序存放在存储器中,当需要进行I/O操作时,CPU只要按约定格式准备好命令和数据,然后启动通道即可;通道则执行相应的通道程序,完成所要求的操作。用通道程序也可完成较复杂的I/O管理和预处理,从而在很大程度上将主机从繁重的I/O管理工作中解脱出来,提高了系统的效率。

原文地址:https://www.cnblogs.com/SQP51312/p/6023907.html