一、相同点:通道、DMA、中断三种基本I/O方式均为外围设备和内存之间的输入/输出控制方式。
二、不同点:
1、驱动方式不同:
中断:允许I/O设备主动打断CPU的运行并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作;
DMA:直接存储器存取方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放” CPU;
I/O通道方式:DMA方式的发展,它可以进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。
2、适用场景不同:
中断:适用于高效场合
DMA:不需要CPU干预介入的控制器来控制内存与外设之间的数据交流的场合
I/O通道方式:适用于以字节为单位的干预,同时实现CPU、通道和I/O设备三者并行 *** 作的场合
3、处理方法不同:
中断:在系统中具有多个中断源的情况下,常用的处理方法有,多中断信号线法中断软件查询法雏菊链法、总线仲裁法和中断向量表法。
DMA:获取总线的3种方式分别为:暂停方式、周期窃取方式和共享方式。
I/O通道方式:通道是一种通过执行通道程序管理I/O *** 作的控制器,它使主机与1/0 *** 作之间达到更高的并行程度。按照所采取的传送方式,可将通道分为字节多路通道、选择通道和数组多路通道3种。
根据百度百科中对DMA的介绍可以知道DMA的工作原理主要有以下:
DMA 是所有现代电脑的重要特色,他允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量 中断 负载。否则,CPU 需要从来源 把每一片段的资料复制到暂存器,然后把他们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。
DMA 传输重要地将一个内存区从一个装置复制到另外一个。当 CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。像是这样的 *** 作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能嵌入式系统算法和网络是很重要的。
同时百度百科中对DMA的特性做了如下解释:
PIO模式下硬盘和内存之间的数据传输是由CPU来控制的;而在DMA模式下,CPU只须向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。DMA模式与PIO模式的区别就在于,DMA模式不过分依赖CPU,可以大大节省系统资源,二者在传输速度上的差异并不十分明显。DMA模式又可以分为Single-Word DMA(单字节DMA)和Multi-Word DMA(多字节DMA)两种,其中所能达到的最大传输速率也只有166MB/s。
DMA 传送方式的优先级高于程序中断,两者的区别主要表现在对CPU的干扰程度不同。程序中断请求不但使CPU停下来,而且要CPU执行中断服务程序为中断请求服务,这个请求包括了对断点和现场的处理以及CPU与外设的传送,所以CPU付出了很多的代价;DMA请求仅仅使CPU暂停一下,不需要对断点和现场的处理,并且是由DMA控制外设与主存之间的数据传送,无需CPU的干预,DMA只是借用了一点CPU的时间而已。还有一个区别就是,CPU对这两个请求的响应时间不同,对程序中断请求一般都在执行完一条指令的时钟周期末尾响应,而对DMA的请求,由于考虑它的高效性,CPU在每条指令执行的各个阶段之中都可以让给DMA使用,是立即响应。 DMA主要由硬件来实现,此时高速外设和内存之间进行数据交换不通过CPU的控制,而是利用系统总线。DMA方式是I/O系统与主机交换数据的主要方式之一,另外还有程序查询方式和中断方式。
I/O控制方式主要有程序查询方式、中断方式、DMA方式和I/O通道控制方式。
程序查询方式也称为程序轮询方式,该方式采用用户程序直接控制主机与外部设备之间输入/输出 *** 作。CPU必须不停地循环测试I/O设备的状态端口,当发现设备处于准备好(Ready)状态时,CPU就可以与I/O设备进行数据存取 *** 作。
中断方式。当I/O设备结束(完成、特殊或异常)时,就会向CPU发出中断请求信号,CPU收到信号就可以采取相应措施。当某个进程要启动某个设备时,CPU就向相应的设备控制器发出一条设备I/O启动指令,然后CPU又返回做原来的工作。
DMA(直接内存存取)方式。DMA方式也称为直接主存存取方式,其思想是:允许主存储器和I/O设备之间通过“DMA控制器(DMAC)”直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无须CPU的干预。
I/O通道控制方式。通道(Channel)也称为外围设备处理器、输入输出处理机,是相对于CPU而言的。是一个处理器。也能执行指令和由指令的程序,只不过通道执行的指令是与外部设备相关的指令。是一种实现主存与I/O设备进行直接数据交换的控制方式。
:i/o系统即输入输出系统, *** 作系统中负责管理输入输出设备的部分称为i/o系统,完成设备管理功能,包括外设编址,数据通路的建立,向主机提供外设的状态信息等。i/o系统的组成有:i/o设备,设备控制器及i/o *** 作有关的软硬件。
参考资料:
DMA(Direct Memory Access),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。
-------------------------------------------------
DMA方式的数据传送过程
DMA方式具有如下特点:
1、 外部设备的输入输出请求直接发给主储存器。
主存储器既可以被CPU访问,也可以被外围设备访问。因此,在主存储器中通常要有一个存储管理部件来为各种访问主存储器的申请排队,一般计算机系统把外围设备的访问申请安排在最高优先级。
2、 不需要做保存现场和恢复现场等工作,从而使DMA方式的工作速度大大加快。
由于在外围设备与主存储器之间传送数据不需要执行程序,因此,也不动用CPU中的数据寄存器和指令计数器等。
3、在DMA控制器中,除了需要设置数据缓冲寄存器、设备状态寄存器或控制寄存器之外,还要设置主存储器地址寄存器,设备地址寄存器和数据交换个数计数器。
外围设备与主存储器之间的整个数据交换过程全部要在硬件控制下完成。另外,由于外围设备一般是以字节为单位传送的,而主存储器是以字为单位访问的,因此,在DMA控制器中还要有从字节装配成字和从字拆卸成字节的硬件。
4、在DMA方式开始之前要对DMA控制器进行初始化,包括向DMA控制器传送主存缓冲区首地址、设备地址、交换的数据块的长度等,并启动设备开始工 作。在DMA方式结束之后,要向CPU申请中断,在中断服务程序中对主存储器中数据缓冲区进行后处理。如果需要继续传送数据的话,要再次对DMA控制器进 行初始化。
5、在DMA方式中,CPU不仅能够与外围设备并行工作,而且整个数据的传送过程不需要CPU的干预。如果主存储器的频带宽度足够的话,外围设备的工作可以丝毫不影响CPU运行它自身的程序。
DMA方式的工作流程如下:
对于输入设备:
从输入介质上读一个字节或字到DMA控制器中的数据缓冲寄存器BD中,如果输入设备是面向字符的,则要把读入的字符装配成字。
若一个字还没有装配满,则返回到上面;若校验出错,则发中断申请;若一个字已经装配满,则将BD中的数据送入主存数据寄存器。
把主存地址寄存器BA(在DMA控制器中)中的地址送入主存地址寄存器,并且将BA中的地址增值至下一个字地址。
把DMA控制器内的数据交换个数计数器BC中的内容减"1"。
若BC中的内容为"0",则整个DMA数据传送过程全部结束,否则返回到最上面继续进行。
对于输出设备:
把主存地址寄存器BA(在DMA控制器中)中的地址送入主存地址寄存器,并启动主存储器,同时将BA中的地址增值至下一个字地址。
将主存储器数据寄存器中的数据送入DMA控制器的数据缓冲寄存器BD中。如果输出设备是面向字符的,则要把BD中的数据拆卸字符。
把BD中数据逐个字符(对于面向字符的设备)或整个字写到输出介质上。
把DMA控制器内的数据交换个数计数器BC中的内容减"1"。
若BC中的内容为"0",则整个DMA数据传送过程全部结束,否则返回到最上面继续进行。
目前使用的DMA方式实际上有如下三种:
1、周期窃取方式
在每一条指令执行结束时,CPU测试有没有DMA服务申请,如果有,则CPU进入一个DMA周期。在DMA周期中借用CPU完成上面所列出的DMA工作流程。包括数据和主存地址的传送,交换个数计数器中的内容减"1",主存地址的增值及一些测试判断等。
采用周期窃取方式时,主存储器可以不与外围设备直接相连接,而只与CPU连接,即仍然可以采用如图44那样的连接方式,因为外围设备与主存储器的数据交换与程序控制输入输出方式和中断输入输出方式一样都是要经过CPU的。
周期窃取方式与程序控制输入输出方式和中断输入输出方式的不同处主要在:它不需要使用程序来完成数据的输入或输出,只是借用了一个CPU的周期来完成DMA流程。因此,其工作速度是很快的。
周期窃取方式的优点是硬件结构很简单,比较容易实现。缺点是在数据输入或输出过程种实际上占用了CPU的时间。
2、直接存取方式
这是一种真正的DMA方式。DMA控制器的数据传送申请不是发向CPU,而是直接发往主存储器。在得到主存储器的响应之后,整个DMA工作流程全部在DMA控制器中用硬件完成。
直接存取方式的优点与缺点正好与周期窃取方式相反。
目前的多数计算机系统均采用直接存取方式工作。
3、数据块传送方式
在设备控制器中设置一个比较大的数据缓冲存储器,一般要能够存放下一个数据块,如在软磁盘存储器中通常设置512个字节的数据缓冲存储器。与设备介质之间的数据交换在数据缓冲存储器中进行。设备控制器与主存储器之间的数据交换以数据块为单位,并采用程序中断方式进行。
数据块传送方式实际上并不是DMA方式,只是它在每次中断输入输出过程中是以数据块为单位获得或发送数据的,这一点与上面两种DMA方式相同,因此,通常也把这种输入输出方式归入DMA方式。
采用数据块传送方式的外围设备还有行式打印机,激光打印机,卡片阅读机,部分绘图仪等。
CPU与外设之间的数据传输有以下三种方式:程序方式、中断方式、DMA方式。其中程序方式又可分为无条件传送方式和条件传送方式两种方式。在CPU外设传送数据不太频繁的情况下一般采用无条件传送方式。
在CPU用于传输数据的时间较长且外设数目不多时采用条件传送方式。在实时系统以及多个外设的系统中,为了提高CPU的效率和使系统具有实时性能,采用中断传送方式。
如/0设备的数据传输效率较高,那么CPU和这样的外设进行数据传输是,即使尽量压缩程序查询方式和中断方式中的非数据传输时间,也仍然不能满足要求。
这是因为在这两种方式下,还存在另外一个影响速度的原因,即它们都是按字节或字来进行传输的。为了解决这个问题,实现按数据块传输,就需要改变传输方式,这就是直接存储器传输方式,即DMA 方式。
扩展资料
在查询方式、中断方式和DMA方式中,分别以下方法启动数据传输过程:
在查询方式下,是通过程序来检测接口中状态寄存器中的准备好”(READY)位,以确定当前是否可以进行数据传输的;在中断方式下。
当接口中已经有数据要往CPU输入或者准备好接收数据时,接口会向CPU发一个外部中断请求,CPU在得到中断请求后,如果响应中断,便通过运行中断处理程序来实现输X输出。
在DMA方式下,外设要求传输数据时,接口会向DMA控制器发DMA请求信号,DMA控制器转而往CPU发送一个总线请求信号,以请求得到总线控制权,如果得到DMA允许,那么,就可以在没有CPU参预的情况下实现DMA传输。
CPU与外设之间的数据传送方式主要有以下三种,分别为:程序方式,中断方式,DMA方式。
上面所说的程序方式其实还可以分为两种,分别是无条件传送方式和条件传送方式。那么在什么时候我们要用无条件传送方式,什么时候要用条件传送方式呢。其实无条件传送方式一般情况下适用于CPU与外设之间传送的数据并不是很频繁的时候。当CPU传输的数据所用的时间比较的长,并且外设的数目并不是很多的情况之下使用条件传送方式比较的合适。
那么什么时候要用到中断方式呢?当我们使用实时系统和多个外设系统的时候,有时为了能够提高CPU的运行效率,并且希望系统能够拥有实时性时,我们就需要用到中断传送方式了。那么中断方式是使用什么样的方法来启动数据传输的呢,当我们的接口之中有数据需要向CPU进行输入或者接口准备接受数据的时候,接口就会像CPU发送一个外部中断请求,当CPU接收到之后如果响应了接口的中断请求,那么便会通过中断处理的程序进行数据输入/输出。反之则不会如此。
当外部设备数据传输的效率比较高的时候,CPU有时候并不能够满足速度方面的要求,这是因为即使CPU努力的压缩了各个方式的非数据传输的时间,但是由于其它影响速度的原因使得CPU在速度方面不能满足要求。那么此时我们就要用到DMA传送方式,也就是直接存储器的传送方式,以此来实现数据传输速度的问题。
上述介绍的有着不同作用的三种方式,便是CPU与外设之间的数据传送的最主要的方式。
以上就是关于比较通道,dma,中断三种基本l/o方式的异同点全部的内容,包括:比较通道,dma,中断三种基本l/o方式的异同点、DMA模式的DMA工作原理、I/O控制方式有哪几种等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)