CN106909523B - 大规模数据传输方法及系统 - Google Patents

大规模数据传输方法及系统 Download PDF

Info

Publication number
CN106909523B
CN106909523B CN201710103227.2A CN201710103227A CN106909523B CN 106909523 B CN106909523 B CN 106909523B CN 201710103227 A CN201710103227 A CN 201710103227A CN 106909523 B CN106909523 B CN 106909523B
Authority
CN
China
Prior art keywords
driver
memory access
direct memory
state process
access controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710103227.2A
Other languages
English (en)
Other versions
CN106909523A (zh
Inventor
李超
黄俞翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Hengxin Data Ltd By Share Ltd
Original Assignee
Shenzhen Hengxin Data Ltd By Share Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Hengxin Data Ltd By Share Ltd filed Critical Shenzhen Hengxin Data Ltd By Share Ltd
Priority to CN201710103227.2A priority Critical patent/CN106909523B/zh
Publication of CN106909523A publication Critical patent/CN106909523A/zh
Application granted granted Critical
Publication of CN106909523B publication Critical patent/CN106909523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • G06F2213/2804Systems and methods for controlling the DMA frequency on an access bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明适用于通信技术领域,提供了大规模数据传输方法,包括:在数据传输开始时,由应用程序调用驱动程序使得驱动程序向控制器发起写操作,写操作包括第一用户态流程和第一内核态流程;当第一用户态流程执行完成后,在执行第一内核态流程时驱动程序向控制器发起读操作,使第一内核态流程和第二用户态流程同时进行,其中,读操作包括第二用户态流程和第二内核态流程;当第二用户态流程执行完成后,在执行第二内核态流程时驱动程序再次向控制器发起写操作,使第二内核态流程与驱动程序再次向控制器发起的写操作同时进行;循环执行上述流程,直至数据传输完成。本发明通过在数据传输时,读操作和写操作同时进行,尤其是在数据规模比较大的时候,可以提高数据传输效率。

Description

大规模数据传输方法及系统
技术领域
本发明属于通信技术领域,尤其涉及大规模数据传输方法及系统。
背景技术
现有的直接内存存取(direct memory access,DMA)实现方式都是利用直接内存存取控制器先将待处理数据从主机内存中写入加速卡,等待加速卡完成数据运算后,直接内存存取控制器再从加速卡中读取运算后的数据并传输至主机内存。现有的直接内存存取数据传输技术在数据传输时,当直接内存存取控制器在进行写操作时,读操作的传输通道处于空闲状态;当直接内存存取控制器在进行读操作时,写操作的传输通道处于空闲状态,尤其是在数据规模比较大的时候,两者不能同时进行,使得数据的写入和读取耗时极大,传输效率低。
发明内容
本发明实施例提供一种大规模数据传输方法及系统,旨在解决现有的直接内存存取数据传输技术在数据传输时,当直接内存存取控制器在进行写操作时,读操作的传输通道处于空闲状态;当直接内存存取控制器在进行读操作时,写操作的传输通道处于空闲状态,尤其是在数据规模比较大的时候,两者不能同时进行,使得数据的写入和读取耗时极大,传输效率低。
第一方面,本发明实施例提供了一种大规模数据传输方法,所述大规模数据传输方法包括:
在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发所述驱动程序向直接内存存取控制器发起写操作,所述写操作包括第一用户态流程和第一内核态流程;
当所述第一用户态流程执行完成后,在开始执行所述第一内核态流程的同时所述应用程序触发所述驱动程序向所述直接内存存取控制器发起读操作,使所述写操作的第一内核态流程和所述读操作的第二用户态流程同时进行,其中,所述读操作包括第二用户态流程和所述第二内核态流程;
当所述第二用户态流程执行完成后,在开始执行所述第二内核态流程时所述应用程序触发所述驱动程序再次向所述直接内存存取控制器发起写操作,使所述读操作的第二内核态流程与所述驱动程序再次向所述直接内存存取控制器发起的写操作同时进行;
循环执行上述流程,直至数据传输完成。
第二方面,本发明实施例提供了一种大规模数据传输系统,所述大规模数据传输系统包括:
数据传输启动模块,用于在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发所述驱动程序向直接内存存取控制器发起写操作,所述写操作包括第一用户态流程和第一内核态流程;
读操作触发模块,用于当所述第一用户态流程执行完成后,在开始执行所述第一内核态流程的同时所述应用程序触发所述驱动程序向所述直接内存存取控制器发起读操作,使所述写操作的第一内核态流程和所述读操作的第二用户态流程同时进行,其中,所述读操作包括第二用户态流程和所述第二内核态流程;
写操作触发模块,用于当所述第二用户态流程执行完成后,在开始执行所述第二内核态流程时所述应用程序触发所述驱动程序再次向所述直接内存存取控制器发起写操作,使所述读操作的第二内核态流程与所述驱动程序再次向所述直接内存存取控制器发起的写操作同时进行;
循环控制模块,用于控制所述写操作触发模块和所述读操作触发模块循环执行上述流程,直至数据传输完成。
本发明实施例与现有技术相比存在的有益效果是:本发明实施例通过在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发驱动程序向直接内存存取控制器发起写操作,写操作包括第一用户态流程和第一内核态流程;当第一用户态流程执行完成后,在开始执行第一内核态流程的同时应用程序触发驱动程序向直接内存存取控制器发起读操作,使写操作的第一内核态流程和读操作的第二用户态流程同时进行,其中,读操作包括第二用户态流程和第二内核态流程;当第二用户态流程执行完成后,在开始执行第二内核态流程时应用程序触发驱动程序再次向直接内存存取控制器发起写操作,使读操作的第二内核态流程与驱动程序再次向直接内存存取控制器发起的写操作同时进行;循环执行上述流程,直至数据传输完成,从而使得读操作和写操作可以同时进行,尤其是在数据规模比较大的时候,大大提高了直接内存存取传输效率。
附图说明
图1为本发明实施例提供的一种大规模数据传输方法的流程示意图;
图2为图1所示实施例中的步骤S102的细化步骤流程示意图;
图3为图1所示实施例中的步骤S103的细化步骤流程示意图;
图4为本发明实施例提供的一种大规模数据传输系统的结构示意图;
图5为图4所示实施例中的读操作触发模块402的细化结构示意图;
图6为图4所示实施例中的写操作触发模块403的细化结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
请参阅图1,图1为本发明实施例提供的一种大规模数据传输方法的流程示意图。本实施例的执行主体为主机,主机是指计算机除去输入输出设备以外的主要机体部分,也是用于放置主板及其他主要部件的控制箱体。通常包括中央处理器(Central ProcessingUnit,CPU)、内存、硬盘、光驱、电源以及其他输入输出控制器和接口。本实施例中的主机中的卡槽中放置了硬件加速卡,例如PCIE硬件加速卡,PCIE硬件加速卡是相当于CPU的一个协处理器,该PCIE硬件加速卡常用的核心逻辑器件为现场可编程门阵(Field ProgrammableGate Array,FPGA)。当主机打开的时候,就会将硬件加速卡和直接内存存取控制器中的驱动程序加载到主机中。本实施例提供的一种大规模数据传输方法包括以下步骤:
步骤S101、在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发驱动程序向直接内存存取控制器发起写操作,写操作包括第一用户态流程和第一内核态流程。
在本发明实施例中,若应用程序调用驱动程序,需要在驱动程序中预留出供外界访问的接口,供外界访问的接口一般包括read,write,open,ioctl等接口。例如,fd=open(设备,参数);或者fd=ioctl(设备,参数)。这样就会调用到这个设备驱动中的open或者ioctl函数。
其中,直接内存存取控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有直接内存存取能力的外设连接起来的控制器。而直接内存存取是一种不经过CPU而直接从内存存取数据的数据交换模式。PIO模式下硬盘和内存之间的数据传输是由CPU来控制的,而在直接内存存取模式下,CPU只须向直接内存存取控制器下达指令,让直接内存存取控制器来处理数的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU资源占有率。
在本发明实施例中,在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,使得驱动程序向直接内存存取控制器发起写操作。
其中,写操作包括第一用户态流程和第一内核态流程。
其中,第一用户态流程具体包括:
应用程序复制驱动程序的接口信息,并将驱动程序的接口信息发送至直接内存存取控制器。
第一内核态流程具体包括:
1)驱动程序创建第一直接内存存取链表,并将第一直接内存存取链表发送至直接内存存取控制器。
其中,上述第一直接内存存取链表包括第一数据的数据长度、第一数据传送起始地址、第一数据传送目的地址及写操作指令。
2)直接内存存取控制器根据驱动程序的接口信息、第一直接内存存取链表将第一数据从主机内存中传送至硬件加速卡中。
3)硬件加速卡对待处理数据进行数据处理。
步骤S102、当第一用户态流程执行完成后,在开始执行第一内核态流程的同时应用程序触发驱动程序向直接内存存取控制器发起读操作,使写操作的第一内核态流程和读操作的第二用户态流程同时进行,其中,读操作包括第二用户态流程和第二内核态流程。
其中,读操作包括第二用户态流程和第二内核态流程。
其中,第二用户态流程具体包括:
应用程序复制驱动程序的接口信息,并将驱动程序的接口信息发送至直接内存存取控制器。
第二内核态流程具体包括:
1)驱动程序创建第二直接内存存取链表,并将第二直接内存存取链表发送至直接内存存取控制器。
其中,上述第二直接内存存取链表包括第二数据的数据长度、第二数据传送起始地址、第二数据传送目的地址及读操作指令。
2)直接内存存取控制器根据驱动程序的接口信息、第二直接内存存取链表将第二数据从硬件加速卡中传送至主机内存中。
进一步地,图2示出了步骤S102中当第一用户态流程执行完成后,在开始执行第一内核态流程的同时应用程序触发驱动程序向直接内存存取控制器发起读操作的具体实现流程,详述如下:
步骤S201、当应用程序复制驱动程序的接口信息并将驱动程序的接口信息发送至直接内存存取控制器后,产生TnOK信号。
步骤S202、在开始执行第一内核态流程的同时,应用程序根据检测到的TnOK信号触发驱动程序向直接内存存取控制器发起读操作。
在本发明实施例中,通过当第一用户态流程执行完成后,在开始执行第一内核态流程的同时应用程序触发驱动程序向直接内存存取控制器发起读操作,使写操作的第一内核态流程和读操作的第二用户态流程同时进行,可以在将数据写进PCIE加速卡的同时,为直接内存存取控制器进行数据读出做前期的准备(即为应用程序复制驱动程序的接口信息,并将驱动程序的接口信息发送至直接内存存取控制器),从而省去每一次执行读操作时的用户态流程的时间,节约时间。
步骤S103、当第二用户态流程执行完成后,在开始执行第二内核态流程时应用程序触发驱动程序再次向直接内存存取控制器发起写操作,使读操作的第二内核态流程与驱动程序再次向直接内存存取控制器发起的写操作同时进行。
在本发明实施例中,当应用程序复制驱动程序的接口信息并将驱动程序的接口信息发送至直接内存存取控制器后,在开始执行第二内核态流程的同时应用程序触发驱动程序,使得驱动程序再次向直接内存存取控制器发起写操作。
进一步地,图3示出了步骤S103中当第二用户态流程执行完成后,在开始执行第二内核态流程时应用程序触发驱动程序再次向直接内存存取控制器发起写操作的具体实现流程,详述如下:
步骤S301、当应用程序复制驱动程序的接口信息并将驱动程序的接口信息发送至直接内存存取控制器后,产生RnOK信号。
步骤S302、在开始执行第二内核态流程的同时,应用程序根据检测到的RnOK信号触发驱动程序,使得驱动程序再次向直接内存存取控制器发起写操作。
在完成步骤S103后,循环执行步骤S101~S103,直至数据传输完成。
以上可以看出,本发明实施例提供的一种大规模数据传输方法通过在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发驱动程序向直接内存存取控制器发起写操作,写操作包括第一用户态流程和第一内核态流程;当第一用户态流程执行完成后,在开始执行第一内核态流程的同时应用程序触发驱动程序向直接内存存取控制器发起读操作,使写操作的第一内核态流程和读操作的第二用户态流程同时进行,其中,读操作包括第二用户态流程和第二内核态流程;当第二用户态流程执行完成后,在开始执行第二内核态流程时应用程序触发驱动程序再次向直接内存存取控制器发起写操作,使读操作的第二内核态流程与驱动程序再次向直接内存存取控制器发起的写操作同时进行;循环执行上述流程,直至数据传输完成,通过在直接内存存取数据传输时,读操作和写操作可以同时进行,尤其是在数据规模比较大的时候,可以提高直接内存存取传输效率。
请参阅图4,图4为本发明实施例提供的一种大规模数据传输系统的结构示意图。本实施例的大规模数据传输系统为主机,主机是指计算机除去输入输出设备以外的主要机体部分,也是用于放置主板及其他主要部件的控制箱体。通常包括中央处理器(CentralProcessing Unit,CPU)、内存、硬盘、光驱、电源、以及其他输入输出控制器和接口。本实施例中的主机中的卡槽中放置了硬件加速卡,例如PCIE硬件加速卡,PCIE硬件加速卡是相当于CPU的一个协处理器,该PCIE硬件加速卡常用的核心逻辑器件为现场可编程门阵(Field-Programmable Gate Array,FPGA)。当主机打开的时候,就会将硬件加速卡和直接内存存取控制器中的驱动程序加载到主机中。本实施例的大规模数据传输系统包括的各模块用于执行图1对应的实施例中的各步骤,具体请参阅图1以及图1对应的实施例中的相关描述,此处不赘述。本实施例的大规模数据传输系统包括:数据传输启动模块401、读操作触发模块402、写操作触发模块403、循环控制模块404。具体地:
数据传输启动模块401,用于在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发驱动程序向直接内存存取控制器发起写操作,写操作包括第一用户态流程和第一内核态流程。
其中,写操作包括第一用户态流程和第一内核态流程。
其中,第一用户态流程具体包括:
应用程序复制驱动程序的接口信息,并将驱动程序的接口信息发送至直接内存存取控制器。
第一内核态流程具体包括:
1)驱动程序创建第一直接内存存取链表,并将第一直接内存存取链表发送至直接内存存取控制器。
其中,上述第一直接内存存取链表包括第一数据的数据长度、第一数据传送起始地址、第一数据传送目的地址及写操作指令。
2)直接内存存取控制器根据驱动程序的接口信息、第一直接内存存取链表将第一数据从主机内存中传送至硬件加速卡中。
3)硬件加速卡对待处理数据进行数据处理。
读操作触发模块402,用于当第一用户态流程执行完成后,在开始执行第一内核态流程的同时应用程序触发驱动程序向直接内存存取控制器发起读操作,使写操作的第一内核态流程和读操作的第二用户态流程同时进行,其中,读操作包括第二用户态流程和第二内核态流程。
其中,读操作包括第二用户态流程和第二内核态流程。
其中,第二用户态流程具体包括:
应用程序复制驱动程序的接口信息,并将驱动程序的接口信息发送至直接内存存取控制器。
第二内核态流程具体包括:
1)驱动程序创建第二直接内存存取链表,并将第二直接内存存取链表发送至直接内存存取控制器。
其中,上述第二直接内存存取链表包括第二数据的数据长度、第二数据传送起始地址、第二数据传送目的地址及读操作指令。
2)直接内存存取控制器根据驱动程序的接口信息、第二直接内存存取链表将第二数据从硬件加速卡中传送至主机内存中。
进一步地,图4示出了读操作触发模块402的细化结构示意图,读操作触发模块402包括的各单元用于执行图2对应的实施例中的各步骤,具体请参阅图2以及图2对应的实施例中的相关描述,此处不赘述。本实施例的读操作触发模块402包括第一产生单元501、第一触发单元502。具体地:
第一产生单元501,用于当应用程序复制驱动程序的接口信息并将驱动程序的接口信息发送至直接内存存取控制器后,产生TnOK信号。
第一触发单元502,用于在开始执行第一内核态流程的同时,应用程序根据检测到的TnOK信号触发驱动程序向直接内存存取控制器发起读操作。
在本发明实施例中,通过当第一用户态流程执行完成后,在开始执行第一内核态流程的同时应用程序触发驱动程序向直接内存存取控制器发起读操作,使写操作的第一内核态流程和读操作的第二用户态流程同时进行,可以在将数据写进PCIE加速卡的同时,为直接内存存取控制器进行数据读出做前期的准备(即为应用程序复制驱动程序的接口信息,并将驱动程序的接口信息发送至直接内存存取控制器),从而省去每一次执行读操作时的用户态流程的时间,节约时间。
写操作触发模块403,用于当第二用户态流程执行完成后,在开始执行第二内核态流程时应用程序触发驱动程序再次向直接内存存取控制器发起写操作,使读操作的第二内核态流程与驱动程序再次向直接内存存取控制器发起的写操作同时进行。
在本发明实施例中,当应用程序复制驱动程序的接口信息并将驱动程序的接口信息发送至直接内存存取控制器后,在开始执行第二内核态流程的同时应用程序触发驱动程序,使得驱动程序再次向直接内存存取控制器发起写操作。
进一步地,图6示出了写操作触发模块403的细化结构示意图,写操作触发模块403包括的各单元用于执行图3对应的实施例中的各步骤,具体请参阅图3以及图3对应的实施例中的相关描述,此处不赘述。本实施例的写操作触发模块403包括第二产生单元601、第二触发单元602。具体地:
第二产生单元601,用于当应用程序复制驱动程序的接口信息并将驱动程序的接口信息发送至直接内存存取控制器后,产生RnOK信号。
第二触发单元602,用于在开始执行第二内核态流程的同时,应用程序根据检测到的RnOK信号触发驱动程序,使得驱动程序再次向直接内存存取控制器发起写操作。
循环控制模块404,用于控制写操作触发模块和读操作触发模块循环执行上述流程,直至数据传输完成。
以上可以看出,本发明实施例提供的一种大规模数据传输系统通过在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发驱动程序向直接内存存取控制器发起写操作,写操作包括第一用户态流程和第一内核态流程;当第一用户态流程执行完成后,在开始执行第一内核态流程的同时应用程序触发驱动程序向直接内存存取控制器发起读操作,使写操作的第一内核态流程和读操作的第二用户态流程同时进行,其中,读操作包括第二用户态流程和第二内核态流程;当第二用户态流程执行完成后,在开始执行第二内核态流程时应用程序触发驱动程序再次向直接内存存取控制器发起写操作,使读操作的第二内核态流程与驱动程序再次向直接内存存取控制器发起的写操作同时进行;循环执行上述流程,直至数据传输完成,通过在直接内存存取数据传输时,读操作和写操作可以同时进行,尤其是在数据规模比较大的时候,可以提高直接内存存取传输效率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块、单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的终端和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的终端和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块、单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例终端中的单元可以根据实际需要进行合并、划分和删减。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种大规模数据传输方法,其特征在于,所述大规模数据传输方法包括:
在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发所述驱动程序向直接内存存取控制器发起写操作,所述写操作包括第一用户态流程和第一内核态流程;第一用户态流程包括所述应用程序复制所述驱动程序的接口信息,并将所述驱动程序的接口信息发送至所述直接内存存取控制器;所述第一内核态流程用于处理所述硬件加速卡获取的第一数据;
当所述第一用户态流程执行完成后,在开始执行所述第一内核态流程的同时所述应用程序触发所述驱动程序向所述直接内存存取控制器发起读操作,使所述写操作的第一内核态流程和所述读操作的第二用户态流程同时进行,其中,所述读操作包括第二用户态流程和第二内核态流程;所述第二用户态流程包括所述应用程序复制所述驱动程序的接口信息,并将所述驱动程序的接口信息发送至所述直接内存存取控制器;所述第二内核态流程用于将所述硬件加速卡中的第二数据传送至主机内存中;
当所述第二用户态流程执行完成后,在开始执行所述第二内核态流程时所述应用程序触发所述驱动程序再次向所述直接内存存取控制器发起写操作,使所述读操作的第二内核态流程与所述驱动程序再次向所述直接内存存取控制器发起的写操作同时进行;
循环执行上述流程,直至数据传输完成。
2.如权利要求1所述的大规模数据传输方法,其特征在于,所述第一内核态流程具体包括:
所述驱动程序创建第一直接内存存取链表,并将所述第一直接内存存取链表发送至所述直接内存存取控制器;
所述直接内存存取控制器根据所述驱动程序的接口信息、所述第一直接内存存取链表将第一数据从所述主机内存中传送至所述硬件加速卡中;
所述硬件加速卡对待处理数据进行数据处理。
3.如权利要求1或2所述的大规模数据传输方法,其特征在于,所述第二内核态流程具体包括:
所述驱动程序创建第二直接内存存取链表,并将所述第二直接内存存取链表发送至所述直接内存存取控制器;
所述直接内存存取控制器根据所述驱动程序的接口信息、所述第二直接内存存取链表将第二数据从所述硬件加速卡中传送至所述主机内存中。
4.如权利要求2所述的大规模数据传输方法,其特征在于,所述当所述第一用户态流程执行完成后,在开始执行所述第一内核态流程的同时所述应用程序触发所述驱动程序向所述直接内存存取控制器发起读操作包括:
当所述应用程序复制所述驱动程序的接口信息并将所述驱动程序的接口信息发送至所述直接内存存取控制器后,产生TnOK信号;
在开始执行所述第一内核态流程的同时,所述应用程序根据检测到的所述TnOK信号触发所述驱动程序向所述直接内存存取控制器发起读操作。
5.如权利要求3所述的大规模数据传输方法,其特征在于,所述当所述第二用户态流程执行完成后,在开始执行所述第二内核态流程时所述应用程序触发所述驱动程序再次向所述直接内存存取控制器发起写操作包括:
当所述应用程序复制所述驱动程序的接口信息并将所述驱动程序的接口信息发送至所述直接内存存取控制器后,产生RnOK信号;
在开始执行所述第二内核态流程的同时,所述应用程序根据检测到的所述RnOK信号触发所述驱动程序,使得所述驱动程序再次向所述直接内存存取控制器发起写操作。
6.一种大规模数据传输系统,其特征在于,所述大规模数据传输系统包括:
数据传输启动模块,用于在数据传输开始时,由应用程序调用驱动程序向硬件加速卡发起运算请求,触发所述驱动程序向直接内存存取控制器发起写操作,所述写操作包括第一用户态流程和第一内核态流程;第一用户态流程包括所述应用程序复制所述驱动程序的接口信息,并将所述驱动程序的接口信息发送至所述直接内存存取控制器;所述第一内核态流程用于处理所述硬件加速卡获取的第一数据;
读操作触发模块,用于当所述第一用户态流程执行完成后,在开始执行所述第一内核态流程的同时所述应用程序触发所述驱动程序向所述直接内存存取控制器发起读操作,使所述写操作的第一内核态流程和所述读操作的第二用户态流程同时进行,其中,所述读操作包括第二用户态流程和第二内核态流程;所述第二用户态流程包括所述应用程序复制所述驱动程序的接口信息,并将所述驱动程序的接口信息发送至所述直接内存存取控制器;所述第二内核态流程用于将所述硬件加速卡中的第二数据传送至主机内存中;
写操作触发模块,用于当所述第二用户态流程执行完成后,在开始执行所述第二内核态流程时所述应用程序触发所述驱动程序再次向所述直接内存存取控制器发起写操作,使所述读操作的第二内核态流程与所述驱动程序再次向所述直接内存存取控制器发起的写操作同时进行;
循环控制模块,用于控制所述写操作触发模块和所述读操作触发模块循环执行上述流程,直至数据传输完成。
7.如权利要求6所述的大规模数据传输系统,其特征在于,所述第一内核态流程具体包括:
所述驱动程序创建第一直接内存存取链表,并将所述第一直接内存存取链表发送至所述直接内存存取控制器;
所述直接内存存取控制器根据所述驱动程序的接口信息、所述第一直接内存存取链表将第一数据从所述主机内存中传送至所述硬件加速卡中;
所述硬件加速卡对待处理数据进行数据处理。
8.如权利要求6或7所述的大规模数据传输系统,其特征在于,所述第二内核态流程具体包括:
所述驱动程序创建第二直接内存存取链表,并将所述第二直接内存存取链表发送至所述直接内存存取控制器;
所述直接内存存取控制器根据所述驱动程序的接口信息、所述第二直接内存存取链表将第二数据从所述硬件加速卡中传送至所述主机内存中。
9.如权利要求7所述的大规模数据传输系统,其特征在于,所述读操作触发模块包括:
第一产生单元,用于当所述应用程序复制完成所述驱动程序的接口信息后,产生TnOK信号;
第一触发单元,用于在开始执行所述第一内核态流程的同时,所述应用程序根据检测到的所述TnOK信号触发所述驱动程序向所述直接内存存取控制器发起读操作。
10.如权利要求8所述的大规模数据传输系统,其特征在于,所述写操作触发模块包括:
第二产生单元,用于当所述应用程序复制所述驱动程序的接口信息并将所述驱动程序的接口信息发送至所述直接内存存取控制器后,产生RnOK信号;
第二触发单元,用于在开始执行所述第二内核态流程的同时,所述应用程序根据检测到的所述RnOK信号触发所述驱动程序,使得所述驱动程序再次向所述直接内存存取控制器发起写操作。
CN201710103227.2A 2017-02-24 2017-02-24 大规模数据传输方法及系统 Active CN106909523B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710103227.2A CN106909523B (zh) 2017-02-24 2017-02-24 大规模数据传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710103227.2A CN106909523B (zh) 2017-02-24 2017-02-24 大规模数据传输方法及系统

Publications (2)

Publication Number Publication Date
CN106909523A CN106909523A (zh) 2017-06-30
CN106909523B true CN106909523B (zh) 2019-11-22

Family

ID=59208957

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710103227.2A Active CN106909523B (zh) 2017-02-24 2017-02-24 大规模数据传输方法及系统

Country Status (1)

Country Link
CN (1) CN106909523B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109344098A (zh) * 2018-09-04 2019-02-15 广州视源电子科技股份有限公司 主从设备间的数据操作方法和装置
CN112631975B (zh) * 2020-12-09 2024-06-04 珠海全志科技股份有限公司 基于Linux的SPI传输方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006323541A (ja) * 2005-05-17 2006-11-30 Hitachi Ltd データ転送回路及びデータ転送方法
CN101034384A (zh) * 2007-04-26 2007-09-12 北京中星微电子有限公司 一种能同时进行读写操作的dma控制器及传输方法
CN102236625A (zh) * 2010-04-20 2011-11-09 上海华虹集成电路有限责任公司 一种可同时进行读写操作的多通道NANDflash控制器
CN103838687A (zh) * 2012-11-26 2014-06-04 三星电子株式会社 贮存设备、包括其的计算系统及其数据传送方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006323541A (ja) * 2005-05-17 2006-11-30 Hitachi Ltd データ転送回路及びデータ転送方法
CN101034384A (zh) * 2007-04-26 2007-09-12 北京中星微电子有限公司 一种能同时进行读写操作的dma控制器及传输方法
CN102236625A (zh) * 2010-04-20 2011-11-09 上海华虹集成电路有限责任公司 一种可同时进行读写操作的多通道NANDflash控制器
CN103838687A (zh) * 2012-11-26 2014-06-04 三星电子株式会社 贮存设备、包括其的计算系统及其数据传送方法

Also Published As

Publication number Publication date
CN106909523A (zh) 2017-06-30

Similar Documents

Publication Publication Date Title
CN110109626B (zh) 一种基于FPGA的NVMe SSD命令处理方法
EP3462326A1 (en) Nvme device, and methods for reading and writing nvme data
US10379745B2 (en) Simultaneous kernel mode and user mode access to a device using the NVMe interface
US20150113184A1 (en) Processor communications
CN114662136B (zh) 一种基于pcie通道的多算法ip核的高速加解密系统及方法
CN101221541B (zh) 用于soc的可编程通信控制器
CN109558344B (zh) 一种适用于网络传输的dma传输方法及dma控制器
JP5185289B2 (ja) 内容終了型dma
JP5643903B2 (ja) 階層的キャッシュ設計におけるキャッシュ間の効率的通信のための方法および装置
CN114553635B (zh) Dpu网络设备中的数据处理方法、数据交互方法及产品
EP2353083A1 (en) Multi-core system with central transaction control
US9684613B2 (en) Methods and systems for reducing spurious interrupts in a data storage system
WO2020143237A1 (zh) 一种dma控制器和异构加速系统
CN104714918B (zh) 主机环境下高速fc总线数据接收及缓冲方法
WO2016041191A1 (zh) 读写数据的方法、装置、存储设备和计算机系统
CN106909523B (zh) 大规模数据传输方法及系统
CN103678573A (zh) 一种实现缓存加速的方法及系统
CN114817965A (zh) 基于多算法ip核实现msi中断处理的高速加解密系统及方法
US20140149528A1 (en) Mpi communication of gpu buffers
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
TWI703446B (zh) 介面轉接電路
TW201342193A (zh) 高效能進階主機控制器介面
CN101452429A (zh) 一种cpu及一种cpu内部与外部数据传输的方法
CN112711442A (zh) 一种主机命令写入方法、设备、系统及可读存储介质
CN108958905B (zh) 嵌入式多核中央处理器的轻量级操作系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Large scale data transmission method and system

Effective date of registration: 20200706

Granted publication date: 20191122

Pledgee: Shenzhen hi tech investment small loan Co.,Ltd.

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2020980003783

PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20210719

Granted publication date: 20191122

Pledgee: Shenzhen hi tech investment small loan Co.,Ltd.

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2020980003783

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Large scale data transmission method and system

Effective date of registration: 20210722

Granted publication date: 20191122

Pledgee: Shenzhen hi tech investment small loan Co.,Ltd.

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2021980006610

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20221130

Granted publication date: 20191122

Pledgee: Shenzhen hi tech investment small loan Co.,Ltd.

Pledgor: Shenzhen Hengyang Data Co.,Ltd.

Registration number: Y2021980006610

PC01 Cancellation of the registration of the contract for pledge of patent right