I/O设备的控制方式

程序I/O:

处理机对I/O设备的控制采取轮询的可编程I/O方式,即在处理机向控制器发出一条I/O指令,启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy置为1,然后便不断地循环测试busy。当busy=1时,表示输入机尚未输完一个字符,处理机应继续对该标志进行测试,直至busy=0,表明输入机已将输入数据送入控制器的数据寄存器中。于是处理机将数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字符的I/O。

图片来自网络

中断I/O:当某进程要启动某个I/O设备工作时,便由CPU向相应的设备控制器发出一条I/O命令,然后立即返回继续执行原来的任务。设备控制器于是按照该命令的要求去控制指定I/O设备。

DMA(直接存储器访问):

特点:1数据传输的基本单位是数据块,2所传送的数据是直接从设备到内存,或者从内存到设备。3这个数据块的传送是在控制器下完成的。只有在开始和结束时才需要CPU的干预。

DMA控制器的组成:命令状态寄存器CR,内存地址寄存器MAR,数据寄存器DR,数据计数器DC。

工作过程:将命令放入命令寄存器CR中,然后将目标地址放入MAR中,字节数放入数据计数器DC中,然后启动DMA控制器进行数据传送,之后CPU可以去处理其他任务。整个数据传送过程由DMA控制器进行控制。当读入一个字节数据,把数据传送到DR,然后时MAR加1.DC减1。一直循环直至DC等于零。

通道方式:

通道方式是DMA的发展,它可进一步的减少CPU的干预,即把对一个数据块的读为单位的干预,减少为对一组数据块的读及有关的控制和管理为单位的干预,同时可实现CPU,通道和IO设备三者的并行操作。

通道是通过执行通道程序并与设备控制器共同实现对IO设备的控制的。通道程序是一系列通道指令所构成。每条指令都包含一下信息:

  1. 操作码,它规定了读,写,控制等操作。
  2. 内存地址,读或写的内存首址
  3. 计数,要读或写的字节数。
  4. 结束位P,p=1表示本条指令是通道的最后一条指令。
  5. 记录结束标志R,r = 0表示本通道指令与下一条指令所处理的数据是属于同一个记录。r=1表示某记录的最后一条指令。

猜你喜欢

转载自blog.csdn.net/qq_36607792/article/details/81452133