I/O控制方式

---- 随着计算机技术的发展,I/O控制方式(设备与内存之间的数据传输控制方式)主要有以下四种:

1、程序I/O方式(程序直接控制方式)

---- 早期的计算机系统中,由于无中断机构,处理机对I/O设备的控制采取程序直接控制方式,或称为忙--等待方式,即在处理机向控制器发出

一条I/O指令启动输入设备输入数据时,要同时把状态寄存器中的忙/闲标志busy置为1,然后便不断地循环测试busy。当busy=1时,表示输入机

尚未输完一个字(符),处理机应继续对该标志进行测试,直至busy=0,表明输入机已将输入数据送入控制器的数据寄存器中。于是处理机将

数据寄存器中的数据取出,送入内存指定单元中,这样便完成了一个字/符的I/O。接着再去启动读下一个数据,并置busy=1.

---- 在程序I/O方式中,由于CPU的高速性I/O设备的低速性,致使CPU的绝大部分时间都处于等待I/O设备完成数据I/O循环测试中,造成对

CPU的极大浪费。在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构,使I/O设备无法向CPU报告它已完成了

一个字符的输入操作。

2、中断控制方式(中断驱动I/O控制方式)

---- 在现代的计算机系统中,都引入了中断机构,所以对I/O设备的控制都广泛采用中断驱动(Interrupt Driven)方式,即当某进程要启动某个I/O

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

的I/O设备。此时,CPU与I/O设备并行操作。例如,在输入时,当设备控制器收到CPU发来的读命令后,便去控制相应的输入设备读数据。

一旦数据进入数据寄存器(在设备控制器中),设备控制器便通过控制线向CPU发送一中断信号,由CPU检查输入过程是否出错。

若无错,便向控制器发送取走数据的信号,然后再通过控制器数据线将数据写入内存指定单元中。

---- 在I/O设备输入每个数据的过程中,由于无需CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去

做些中断处理。可见,这样可使CPU和I/O设备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。

3、DMA控制方式(直接存储器访问I/O控制方式)

---- 虽然中断驱动I/O比程序I/O方式更有效,但须注意,它仍是以字(节)为单位进行I/O的,每当完成一个字节的I/O时,控制器便要向CPU请求

一次中断。换言之,采用中断驱动I/O方式时的CPU是以字(节)为单位进行干预的。如果将这种方式用于块设备的I/O,显然是极其低效的。

例如,为了从磁盘中读出1KB的数据块,需要中断CPU1K次。为了进一步减少CPU对I/O的干预而引入了DMA访问方式,该方式的特点是:

-- 1)数据传输的基本单位数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;

-- 2)所传送的数据是从设备直接送入内存的,或者相反,即只能单向传输

-- 3)仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下完成的。

---- DMA控制器由三部分组成:主机与DMA控制器的接口DMA控制器与块设备的接口I/O控制逻辑

      为了实现在主机与控制器之间成块数据的直接交换,必须在DMA控制器中设置如下四类寄存器

-- 1)命令/状态寄存器(CR,command register)。用于接收从CPU发来的I/O命令,或有关控制信息,或设备的状态。

-- 2)内存地址寄存器(MAR,memory address register)。在输入时,它存放把数据从设备传送到内存的起始目标地址;在输出时,它存放由内存

到设备的内存源地址

-- 3)数据寄存器(DR,data register).用于暂存从设备到内存,或从内存到设备的数据。

-- 4)数据计数器(DC,data counter).存放本次CPU要读或写的字(节)数

     

---- DMA工作过程:以磁盘读入数据为例,说明DAM方式的工作流程

-- 1)当CPU要从磁盘读入一数据块时,便向磁盘控制器发送一条读命令,该命令被送入(控制器的)命令寄存器(CR)中。

-- 2)同时,还需发送本次要将数据读入的内存起始目标地址,该地址被送入内存地址寄存器(MAR)中。

-- 3)本次要读数据的字(节)数则送入数据计数器(DC)中,将磁盘中的源地址直接送至DMA控制器的I/O控制逻辑上。

-- 4)启动DMA控制器进行数据传送,以后CPU便可去处理其他任务。此后整个数据传送过程便由DMA控制器进行控制。

-- 5)当DMA控制器已从磁盘中读入一个字(节)的数据并送入数据寄存器(DR)后,再挪用一个存储器(内存)周期,将该字(节)传送到

MAR所指示的内存单元中。接着对MAR的内容加1,DC内容减1。若减1后DC的内容不为0,表示传送未完,便继续传送下一个字(节)。

若DC的内容为0,表示数据已传送完,由DMA控制器发出中断请求。DMA方式的工作流程图如下所示:

                            

---- DMA控制方式的特点为:数据传输的基本单位是数据块,而且数据是单向传输,从设备到内存或者相反。

---- DMA控制方式与中断控制方式的主要区别是:

1)中断控制方式在每个数据传送完成后中断CPU,而DMA控制方式则是在所要求传送的一批数据全部传送结束时才中断CPU。

2)中断控制方式的数据传送是在中断处理时由CPU控制完成的,而DMA控制方式则是在DMA控制器的控制下完成。

优点:DMA控制方式下,设备和CPU可以并行工作,同时设备与内存的数据交换速度加快,并且不需要CPU干预。

缺点:数据传送的方向只能是单向的。存放输入数据的内存起始地址及传送的数据长度等都由CPU控制,并且每台设备都需要一个DMA

控制器,当设备增加时,多个DMA控制器的使用也不经济。

4、通道控制方式----后续章节。。

  • 11
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值