IO方式、DMA 和多通道
DMA方式(完全硬件)
在 I/O设备与外设之间有直接数据通路,传送过程中不需要CPU参与,而是 DMA控制器控制完成。
DMA工作过程:
1)预处理
CPU收到 设备发出的DMA请求,它做为 司令,会向 DMA发布一些命令,启动DMA,测试I/O设备,初始化寄存器等
2)数据传送
完全由DMA硬件完成
3)后处理
完成数据传送后,DMA控制器向CPU发送中断请求。
======================== 1 =======================
通道方式(有程序参与)
I/O 通道是指专门负责输入/输出的处理机,每个通道都挂接外设,主机在执行 I/O命令时,只需要启动通道,然后通道会执行通道程序。
通道方式是对DMA方式的发展,由一个数据块的读写发展成为对一组数据块的处理。
通道的工作过程:CPU只要向 I/O通道发送一条 I/O指令,哪怕是一组相关的读写操作,通道会执行通道程序,完成一组数据的传送。
DMA与通道方式的区别:
1)一些控制信息,如数据块的大小,内存位置,DMA方式下由CPU来控制,但是通道方式下由通道控制
2)每个DMA控制器对应一台设备与内存交换数据,但是通道可以控制多台设备与内存的数据进行交换。
https://www.cnblogs.com/juanzhi/p/12837375.html?share_token=2a364f36-e2a8-4490-b042-23a7a3fa3625
============================ 2 =====================
在DMA方式中,数据的传送方向、存放数据的内存始址以及传送的数据块长度等都由CPU控制,而在通道方式中,这些都由通道来进行控制。另外,DMA方式每台设备至少需要一个DMA控制器,一个通道控制器可以控制多台设备。
https://m.php.cn/faq/447339.html?share_token=599e30b4-f641-4183-8b69-53dbbfa1b5e3
============================ 3 =====================
DMA(Direct Memory Access) ,可在没有CPU干预的情况下,进行外设和存储器、存储器和存储器之间的高速数据传输。当CPU和DMA同时访问相同的目标时,DMA请求会暂停CPU访问系统总线若干周期,总线仲裁器会执行循环调度,从而保证CPU至少可以得到一般的系统总线带宽。
DMA 有自己的寄存器,可以保存io传输的设备地址,主存地址、传输设备地址、传输量计数,也会在传输过程中中断。只不过产生的中断没有那么频繁,想中断io方式,每次io请求过来就要中断cpu,然后cpu获取总线,将数据放入内存。有了DMA后,外设产生数据后,不在和CPU交互,而是和DMA交互,DMA申请总线,将数据放入内存。并且,DMA对总线的占用也是分时方式,不会一直占用。

当前DMA的控制器,拥有多通道,是一个逻辑划分,DMA中有多组寄存器,记录状态、地址、信息、传输量,每组都代表一路传输
其中DMA1有七个通道,DMA2有5个通道。通道负责管理来自一个或多个外设对存储器的请求,每个通道都有3个事件(中断)标志(DMA传输过半、DMA传输完成、DMA传输出错)。
如何理解嵌入式开发中的DMA?DMA接收与中断接收的区别有多大?https://www.ixigua.com/6801040805898224131?wid_try=1
使用DMA控制器进行串口的收发:https://zhuanlan.zhihu.com/p/260759483
============================ 4 =====================

https://bbs.huaweicloud.com/blogs/detail/250561
============================ 5 =====================

由中断,发现缺页:
DBR ,需要换一页出去,方向寄存器;ADR 记录内存的起始地址;WC 描述这页有多大;MAR 描述哪个设备接收;CSR 描述状态。

I/O通道是计算机系统中代替CPU管理控制外设的独立部件,是一种能执行有限I/O指令集合——通道命令的I/O处理机。
一对多的连接关系。适应不同速度、不同种类的外部设备,可并行工作
通道的功能:
根据CPU要求选择某一指定外设与系统相连,向该外设发出操作命令,进行初始化
指出外设读/写信息的位置以及与外设交换信息的主存缓冲区地址
控制外设与主存之间的数据交换
指定数据传送结束时的操作内容,检查外设的状态
通道的类型
字节多路通道
简单的共享通道,分时处理,面向低、中速字符设备
选择通道
选择一台外设独占整个通道,以成组传送方式传送数据块,效率高,适合快速设备
数组多路通道
上两种方式的结合,效率高,控制复杂
https://blog.51cto.com/u_15279775/2936171#DMA_194
============================ 6 =====================

通道:能执行有限通道指令的IO控制器,代替CPU管理控制外设。通道有自己的指令系统,是一个协处理器,一般用在大型计算机系统中(不是大型机)。通道实质是一台能够执行有限的输入输出指令,并能被多台外设共享的小型DMA专用处理机。广义上讲,DMA也属于通道。
通道解决了两个问题:由CPU承担输入输出的工作。虽然DMA无需CPU进行外设与内存的数据交换工作,但是这只是减少了CPU的负担。因而DMA中,输入输出的初始化仍然要由CPU来完成。大型计算机系统中高速设备共享DMA接口的问题。大型计算机系统的外设太多以至于不得不共享有限的DMA接口(小型计算机系统比如pc机中每个高速设备分配一个DMA接口)。
通道解决了两个问题:由CPU承担输入输出的工作。虽然DMA无需CPU进行外设与内存的数据交换工作,但是这只是减少了CPU的负担。因而DMA中,输入输出的初始化仍然要由CPU来完成。大型计算机系统中高速设备共享DMA接口的问题。大型计算机系统的外设太多以至于不得不共享有限的DMA接口(小型计算机系统比如pc机中每个高速设备分配一个DMA接口)。 最后回到问题本身,通道与DMA相比:共同点:都能实现IO设备和内存之间建立数据直传通路;不同点:DMA只能实现固定的数据传送控制,而通道有自己的指令和程序,具有更强的独立处理数据输入和输出的能力。DMA只能控制一台或者少数几台同类设备,而一个通道可以控制多台同类或者不同的设备。Reference:Modern Operating Systems : Andrew S. Tanenbaum, Third Edition
作者:axiqia
链接:https://www.zhihu.com/question/31274481/answer/179151672
。
https://juejin.cn/post/6982834043767226381
https://www.zhihu.com/question/31274481
浙公网安备 33010602011771号