I/O控制方式

程序I/O方式
在处理机向控制器发出一条I/O指令启动输入设备输入数据时,读出状态寄存器的设备状态,将busy标志位置为1 ;然后,需要不停测试busy标志位,如果busy标志位=1 ,表示输入未完成,处理机继续测试,直到busy标志位=0 ,表明输入数据已进入控制器的数据寄存器中;处理机将数据寄存器中的数据取出1送入指定内存单元中。
在这里插入图片描述
在程序I/0方式中,从终端输入-一个字符的时间约为100 ms,而将字符送入终端缓冲区的时间小于0. 1 ms。若采用程序I/0方式,CPU约有99. 9ms的时间处于忙一等待中。
由于CPU的高速性和I/0设备的低速性,致使CPU的绝大部分时间都处于等待I/0设备完成数据I/O的循环测试中,造成对CPU的极大浪费。
中断驱动I/O控制方式
在输入数据时,当设备控制器收到CPU发来的读命令后,便去控制输入设备读数据。当输入数据已进入控制器的数据寄存器时,控制器便通过控制线向CPU发送一.个中断信号,CPU检查输入过程中是否出错,若无错,便向控制器发送取走数据的信号,再通过控制器与数据线将数据写入指定内存单元中。
在这里插入图片描述
例如,从终端输入一个字符的时间约为100ms,而将字符送入终端缓冲区的时间小于0. 1 ms。若采用中断驱动方式后,CPU可利用这99.9ms的时间去做其它事情,而仅用0.1ms的时间来处理由控制器发来的中断请求。
在I/0设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/0设备并行工作,提高了整个系统的资源利用率及吞吐量。
直接存储器访间DMA IO控制方式
1.DMA控制方式的引入
①数据传输的基本单位是数据块,即在CPU与I/0设备之间,每次传送至少-一个数据块;
②所传送的数据是从设备直接送入内存的,或者相反;
③仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。
在这里插入图片描述
2.DMA控制器的组成
在这里插入图片描述
为了实现在主机与控制器之间成块数据的直接交换,必须在DMA控制器中设置如下四类寄存器:
(1) 命令/状态寄存器CR。用于接收从CPU发来的I/0命令或有关控制
信息,或设备的状态。
(2)内存地址寄存器MAR。在输入时,它存放把数据从设备传送到内
存的起始目标地址;在输出时,它存放由内存到设备的内存源地址。
(3) 数据寄存器DR。用于暂存从设备到内存,或从内存到设备的数据。
(4)数据计数器DC。存放本次CPU要读或写的字(节)数。
3. DMA工作过程
当CPU从磁盘读入一数据块时,向磁盘控制器发送一条读命令。
该命令被送到其中的命令寄存器.(CR)中;同时,发送本次要将数据.
读入的内存起始目标地址,该地址被送入内存地址寄存器中(MAR) ;本次要读的字节数送入数据计数器中(DC);将磁盘的源地址直接送到DMA控制器的I0控制逻辑上。然后,启动DMA控制器进行数据传
送,CPU可处理其它任务。
在这里插入图片描述
整个数据传送过程由DMA控制器进行控制。
当从磁盘读入一个字节的数据,并送入数据寄存器后,再挪用一个
存储周期,将字节送到内存地址寄存器中(MAR) 所指示的内存单元中;接着,对内存地址寄存器MAR内容加1;将数据计数器DC内容减1。
若减1后,数据计数器内容不为0,表示传送未完,便继续传送下一个字节;否则,由DMA控制器发出中断请求。由CPU完成–个完整数据块的数据读入。
I/O通道控制方式

  1. I/O通道控制方式的引入
    I/0通道方式是DMA方式的发展,它可进一.步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对-组数据块的读(或写)及有关的控制和管理为单位的干预。
    例如,当CPU要完成–组相关的读(或写)操作及有关控制时,只需向
    I/0通道发送一条I/0指令,以给出其所要执行的通道程序的首址和要访问的I/0设备,通道接到该指令后,通过执行通道程序便可完成CPU指定的I/0任务。
    2.通道程序
    (1) 操作码。
    (2)内存地址。
    (3) 计数。
    (4)通道程序结束位P。
    (5)记录结束标志R。
    在这里插入图片描述
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值