The invention is applicable to the field of communication technology, provides large-scale data transmission method, including: in the beginning of data transmission, the application calls the driver the driver to the controller initiates a write operation, a write operation includes a first user mode process and the first kernel process; when the first user mode process execution is completed, to initiate a read operation the controller driver in the implementation of the first kernel process, the first kernel process and second user mode processes at the same time, the read operation includes second user processes and second kernel process; when the second user mode process execution is completed, in the implementation of second kernel process when the driver again to the controller initiates a write operation. The second write operation process and the kernel driver controller to initiate again at the same time; the process execution cycle Until data transfer is complete. The invention can improve the data transmission efficiency by simultaneously reading and writing at the time of data transmission, especially when the data scale is relatively large.
【技术实现步骤摘要】
大规模数据传输方法及系统
本专利技术属于通信
,尤其涉及大规模数据传输方法及系统。
技术介绍
现有的直接内存存取(directmemoryaccess,DMA)实现方式都是利用直接内存存取控制器先将待处理数据从主机内存中写入加速卡,等待加速卡完成数据运算后,直接内存存取控制器再从加速卡中读取运算后的数据并传输至主机内存。现有的直接内存存取数据传输技术在数据传输时,当直接内存存取控制器在进行写操作时,读操作的传输通道处于空闲状态;当直接内存存取控制器在进行读操作时,写操作的传输通道处于空闲状态,尤其是在数据规模比较大的时候,两者不能同时进行,使得数据的写入和读取耗时极大,传输效率低。
技术实现思路
本专利技术实施例提供一种大规模数据传输方法及系统,旨在解决现有的直接内存存取数据传输技术在数据传输时,当直接内存存取控制器在进行写操作时,读操作的传输通道处于空闲状态;当直接内存存取控制器在进行读操作时,写操作的传输通道处于空闲状态,尤其是在数据规模比较大的时候,两者不能同时进行,使得数据的写入和读取耗时极大,传输效率低。第一方面,本专利技术实施例提供了一种大规模数据传输方法,所述大规模数据传输方法包括:在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发所述驱动程序向直接内存存取控制器发起写操作,所述写操作包括第一用户态流程和第一内核态流程;当所述第一用户态流程执行完成后,在开始执行所述第一内核态流程的同时所述应用程序触发所述驱动程序向所述直接内存存取控制器发起读操作,使所述写操作的第一内核态流程和所述读操作的第二用户态流程同时进行,其中,所 ...
【技术保护点】
一种大规模数据传输方法,其特征在于,所述大规模数据传输方法包括:在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发所述驱动程序向直接内存存取控制器发起写操作,所述写操作包括第一用户态流程和第一内核态流程;当所述第一用户态流程执行完成后,在开始执行所述第一内核态流程的同时所述应用程序触发所述驱动程序向所述直接内存存取控制器发起读操作,使所述写操作的第一内核态流程和所述读操作的第二用户态流程同时进行,其中,所述读操作包括第二用户态流程和所述第二内核态流程;当所述第二用户态流程执行完成后,在开始执行所述第二内核态流程时所述应用程序触发所述驱动程序再次向所述直接内存存取控制器发起写操作,使所述读操作的第二内核态流程与所述驱动程序再次向所述直接内存存取控制器发起的写操作同时进行;循环执行上述流程,直至数据传输完成。
【技术特征摘要】
1.一种大规模数据传输方法,其特征在于,所述大规模数据传输方法包括:在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发所述驱动程序向直接内存存取控制器发起写操作,所述写操作包括第一用户态流程和第一内核态流程;当所述第一用户态流程执行完成后,在开始执行所述第一内核态流程的同时所述应用程序触发所述驱动程序向所述直接内存存取控制器发起读操作,使所述写操作的第一内核态流程和所述读操作的第二用户态流程同时进行,其中,所述读操作包括第二用户态流程和所述第二内核态流程;当所述第二用户态流程执行完成后,在开始执行所述第二内核态流程时所述应用程序触发所述驱动程序再次向所述直接内存存取控制器发起写操作,使所述读操作的第二内核态流程与所述驱动程序再次向所述直接内存存取控制器发起的写操作同时进行;循环执行上述流程,直至数据传输完成。2.如权利要求1所述的大规模数据传输方法,其特征在于,所述第一用户态流程具体包括:所述应用程序复制所述驱动程序的接口信息,并将所述驱动程序的接口信息发送至所述直接内存存取控制器;所述第一内核态流程具体包括:所述驱动程序创建第一直接内存存取链表,并将所述第一直接内存存取链表发送至所述直接内存存取控制器;所述直接内存存取控制器根据所述驱动程序的接口信息、所述第一直接内存存取链表将第一数据从主机内存中传送至所述硬件加速卡中;所述硬件加速卡对所述待处理数据进行数据处理。3.如权利要求1或2所述的大规模数据传输方法,其特征在于,所述第二用户态流程具体包括:所述应用程序复制所述驱动程序的接口信息,并将所述驱动程序的接口信息发送至所述直接内存存取控制器;所述第二内核态流程具体包括:所述驱动程序创建第二直接内存存取链表,并将所述第二直接内存存取链表发送至所述直接内存存取控制器;所述直接内存存取控制器根据所述驱动程序的接口信息、所述第二直接内存存取链表将第二数据从所述硬件加速卡中传送至所述主机内存中。4.如权利要求2所述的大规模数据传输方法,其特征在于,所述当所述第一用户态流程执行完成后,在开始执行所述第一内核态流程的同时所述应用程序触发所述驱动程序向所述直接内存存取控制器发起读操作包括:当所述应用程序复制所述驱动程序的接口信息并将所述驱动程序的接口信息发送至所述直接内存存取控制器后,产生TnOK信号;在开始执行所述第一内核态流程的同时,所述应用程序根据检测到的所述TnOK信号触发所述驱动程序向所述直接内存存取控制器发起读操作。5.如权利要求3所述的大规模数据传输方法,其特征在于,所述当所述第二用户态流程执行完成后,在开始执行所述第二内核态流程时所述应用程序触发所述驱动程序再次向所述直接内存存取控制器发起写操作包括:当所述应用程序复制所述驱动程序的接口信息并将所述驱动程序的接口信息发送至所述直接内存存取控制器后,产生RnOK信号;在开始执行所述第二内核态流程的同时,所述应用程序根据检测到的所述RnOK信号触发所述驱动程序,使得所述驱动程...
【专利技术属性】
技术研发人员:李超,黄俞翔,
申请(专利权)人:深圳市恒扬数据股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。