一种Scatter-Gather DMA的数据传输缓冲区设计方法技术

技术编号:20074823 阅读:31 留言:0更新日期:2019-01-15 00:34
本发明专利技术公开一种Scatter‑Gather DMA的数据传输缓冲区设计方法,涉及数据传输技术领域;使用scatter‑gather DMA进行数据传输时,创建两个scatter‑gather DMA链表,并将两个scatter‑gather DMA链表分别指向两组内核空间缓冲区,每组内核空间缓冲区的数量对应相应的scatter‑gather DMA链表节点数,用户空间数据拷贝到一组内核空间缓冲区并进行DMA传输的同时,利用CPU将下次需传输的用户空间数据拷贝入另一组内核空间缓冲区,当上一次DMA传输完成,利用中断处理程序启动下一次DMA传输,直至将用户空间数据完全写入设备。

A Data Transfer Buffer Design Method for Scatter-Gather DMA

The invention discloses a data transmission buffer design method of Scatter Gather DMA, which relates to the technical field of data transmission; when data transmission is carried out by scatter Gather DMA, two scatter Gather DMA linked lists are created, and two scatter Gather DMA linked lists are pointed to two groups of kernel space buffers respectively, and the number of each group of kernel space buffers corresponds to corresponding scatter Gather DMA linked lists. The number of nodes in gather DMA linked list, the number of user space data copied to a set of kernel space buffers and transmitted by DMA, at the same time, the next user space data to be transmitted is copied into another set of kernel space buffers by CPU. When the last DMA transmission is completed, the next DMA transmission is started by interrupt processing program until the user space data is completely written to the device.

【技术实现步骤摘要】
一种Scatter-GatherDMA的数据传输缓冲区设计方法
本专利技术公开一种数据传输缓冲区设计方法,涉及数据传输
,具体地说是一种Scatter-GatherDMA的数据传输缓冲区设计方法。
技术介绍
DMA(DirectMemoryAccess),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从IO设备到内存,从内存到IO设备或从一段内存到另一段内存。利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。Scatter-gatherDMA方式是与blockDMA方式相对应的一种DMA方式。在DMA传输数据的过程中,要求源物理地址和目标物理地址必须是连续的。但是在某些计算机体系中连续的存储器地址在物理上不一定是连续的,所以DMA传输要分成多次完成。如果在传输完一块物理上连续的数据后引起一次中断,然后再由主机进行下一块物理上连续的数据传输,那么这种方式就为本文档来自技高网...

【技术保护点】
1.一种Scatter‑Gather DMA的数据传输缓冲区设计方法,其特征是使用scatter‑gather DMA进行数据传输时,创建两个scatter‑gather DMA链表,并将两个scatter‑gather DMA链表分别指向两组内核空间缓冲区,每组内核空间缓冲区的数量对应相应的scatter‑gather DMA链表节点数,用户空间数据拷贝到一组内核空间缓冲区并进行DMA传输的同时,利用CPU将下次需传输的用户空间数据拷贝入另一组内核空间缓冲区,当上一次DMA传输完成,利用中断处理程序启动下一次DMA传输,直至将用户空间数据完全写入设备。

【技术特征摘要】
1.一种Scatter-GatherDMA的数据传输缓冲区设计方法,其特征是使用scatter-gatherDMA进行数据传输时,创建两个scatter-gatherDMA链表,并将两个scatter-gatherDMA链表分别指向两组内核空间缓冲区,每组内核空间缓冲区的数量对应相应的scatter-gatherDMA链表节点数,用户空间数据拷贝到一组内核空间缓冲区并进行DMA传输的同时,利用CPU将下次需传输的用户空间数据拷贝入另一组内核空间缓冲区,当上一次DMA传输完成,利用中断处理程序启动下一次DMA传输,直至将用户空间数据完全写入设备。2.根据权利要求1所述的方法,其特征是所述中断处理程序判断当前完成传输的是第几组数据,再将另一组内核空间缓冲区对应的链表地址告知设备,并启动下一次DMA传输。3.根据权利要求2所述的方法,其特征是进行DMA传输的具体过程为:先将用户空间数据拷贝入第一组内核空间缓冲区,将第一组内核空间缓冲区对应的scatter-gatherDMA链表的地址告知设备,开始DMA传输,在DMA传输的同时,CPU将下次需传输的用户空间数...

【专利技术属性】
技术研发人员:赵瑞东王朝晖陈亮甫吴登勇
申请(专利权)人:山东超越数控电子股份有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1