一种适用于网络传输的DMA传输方法及DMA控制器技术

技术编号:20763838 阅读:35 留言:0更新日期:2019-04-03 14:17
本发明专利技术公开了一种适用于网络传输的DMA传输方法及DMA控制器。对于Write DMA,本申请提前将主机端预留的存储空间的地址依次写入板卡端配有的FIFO存储器中,使板卡端的DMA控制器可根据FIFO存储器中存储的地址和板卡端的传输数据自主生成描述符,无需主机端再维护描述符,从而减少了主机端与板卡端之间的交互次数,提高了Write DMA数据传输效率,且减小了主机端的工作负担。对于Read DMA,主机端主动生成描述符,而不是等待中断后再重新生成描述符,所以板卡端无需等待主机端重新生成描述符,从而减少了主机端与板卡端之间的交互时间,提高了Read DMA数据传输效率。

【技术实现步骤摘要】
一种适用于网络传输的DMA传输方法及DMA控制器
本专利技术涉及DMA传输领域,特别是涉及一种适用于网络传输的DMA传输方法及DMA控制器。
技术介绍
现有技术中,在网络传输下的DMA(DirectMemoryAccess,直接存储器访问)传输包括WriteDMA和ReadDMA。请参照图1,图1为现有技术中的一种DMA传输的实现原理图。WriteDMA是指FPGA(Field-ProgrammableGateArray,现场可编程逻辑门阵列)端向主机端传输数据,ReadDMA是指主机端向FPGA端传输数据。FPGA端(即板卡端)配置有PCIE(peripheralcomponentinterconnectexpress,外设部件高速互连标准)控制器、DMA控制器及SmartNIC(NetworkInterfaceCard,网卡)。对于WriteDMA,板卡端准备好所需传输的数据后(通过SmartNIC从外部终端获取数据,并将数据存储至板卡端内存),需要告知主机端即将传输的数据在板卡端内存的存储地址及数据的大小(交互路径:DMA控制器—PCIE控制器—主机端)。然后主机端根据此信息生成描述符,随后配置板卡端寄存器以告知板卡端的DMA控制器描述符在主机端的存储地址,而后由DMA控制器将描述符搬移至板卡端内存中预留的描述符存储空间。DMA控制器在搬移完描述符后依次读取描述符存储空间中的内容,执行WriteDMA传输。等描述符存储空间中所有描述符都执行完后,DMA控制器发送中断信号至主机端。若板卡端所需传输的数据中还存在未传输的数据,需要再重新生成描述符并再次执行WriteDMA传输,直至数据全部传输完成。对于ReadDMA,主机端根据所需传输的数据在自身内存的存储地址及数据的大小,和板卡端内存空间生成描述符,接下来的ReadDMA传输流程与WriteDMA类似。可见,在DMA传输中,主机端与板卡端之间交互的次数较多,且板卡端每次需等待主机端重新生成描述符,导致二者交互占据的时间较长,从而降低了DMA传输效率。因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。
技术实现思路
本专利技术的目的是提供一种适用于网络传输的DMA传输方法及DMA控制器,对于WriteDMA,本申请无需主机端再维护描述符,从而减少了主机端与板卡端之间的交互次数,提高了WriteDMA数据传输效率,且减小了主机端的工作负担。对于ReadDMA,板卡端无需等待主机端重新生成描述符,从而减少了主机端与板卡端之间的交互时间,提高了ReadDMA数据传输效率。为解决上述技术问题,本专利技术提供了一种适用于网络传输的DMA传输方法,应用于板卡端配置的直接存储器访问DMA控制器,包括:在WriteDMA传输之前,预先将主机端预留的存储空间的地址依次写入所述板卡端配有的先进先出FIFO存储器,其中,所述主机端预留的存储空间是为存储所述板卡端的传输数据预留的空间;当准备WriteDMA传输时,根据所述FIFO存储器中存储的地址和所述板卡端的传输数据的存储地址及数据大小自主生成描述符,并将所述描述符存储至所述板卡端预留的描述符存储空间,以执行WriteDMA传输;在准备ReadDMA传输时,根据所述主机端配置的板卡端寄存器信息,获取所述主机端根据板卡端内存空间主动生成的描述符的存储地址;按照所述主机端主动生成的描述符的存储地址,从所述主机端中将描述符搬移至所述板卡端预留的描述符存储空间,以执行ReadDMA传输。优选地,所述根据所述FIFO存储器中存储的地址和所述板卡端的传输数据的存储地址及数据大小自主生成描述符,并将所述描述符存储至所述板卡端预留的描述符存储空间,以执行WriteDMA传输,包括:为所述板卡端的传输数据中的网络报文依次配置传输地址,其中,所述传输地址为从所述FIFO存储器存储的地址中依次选择的地址;在为未配置的网络报文配置传输地址的同时,根据已配置的网络报文在所述板卡端的存储地址、数据大小及其对应的传输地址自主生成描述符,并将所述描述符依次存储至所述板卡端预留的描述符存储空间;在存储刚生成的描述符的同时,根据已存储的描述符执行WriteDMA传输。优选地,该DMA传输方法还包括:预先将所述板卡端预留的描述符存储空间分为不同优先级的多组队列式存储空间;其中,优先级高的队列式存储空间中存储的描述符比优先级低的队列式存储空间中存储的描述符优先读取;则所述为所述板卡端的传输数据中的网络报文依次配置传输地址,包括:按照所述板卡端的传输数据中的网络报文的优先级,依次为所述网络报文配置传输地址;其中,优先级高的网络报文比优先级低的网络报文优先配置,且板卡端网络报文的优先级类别与所述队列式存储空间的优先级类别相同;所述将所述描述符依次存储至所述板卡端预留的描述符存储空间,包括:将所述描述符按照其对应的网络报文所属的优先级类别存储至相同类别的队列式存储空间。优选地,所述按照所述主机端主动生成的描述符的存储地址,从所述主机端中将描述符搬移至所述板卡端预留的描述符存储空间,以执行ReadDMA传输,包括:在所述主机端配置板卡端寄存器信息的同时,按照所述主机端已主动生成的描述符的存储地址,从所述主机端中将描述符依次搬移至所述板卡端预留的描述符存储空间;在从所述主机端中搬移新生成的描述符的同时,根据已存储的描述符执行ReadDMA传输。优选地,所述主机端主动生成的任一描述符包括:所述主机端的传输数据中一个网络报文在所述主机端的存储地址、该网络报文的数据大小,及该网络报文即将传输的所述板卡端的内存地址。优选地,该DMA传输方法还包括:预先将所述板卡端预留的描述符存储空间分为不同优先级的多组队列式存储空间,其中,所述队列式存储空间的优先级类别与主机端网络报文的优先级类别相同,且优先级高的队列式存储空间中存储的描述符比优先级低的队列式存储空间中存储的描述符优先读取;所述从所述主机端中将描述符依次搬移至所述板卡端预留的描述符存储空间,包括:从所述主机端中将描述符按照其对应的网络报文所属的优先级类别,依次搬移至相同类别的队列式存储空间。为解决上述技术问题,本专利技术还提供了一种适用于网络传输的DMA控制器,包括:预写入模块,用于在WriteDMA传输之前,预先将主机端预留的存储空间的地址依次写入所述板卡端配有的先进先出FIFO存储器,其中,所述主机端预留的存储空间是为存储所述板卡端的传输数据预留的空间;WDMA模块,用于当准备WriteDMA传输时,根据所述FIFO存储器中存储的地址和所述板卡端的传输数据的存储地址及数据大小自主生成描述符,并将所述描述符存储至所述板卡端预留的描述符存储空间,以执行WriteDMA传输;地址获取模块,用于在准备ReadDMA传输时,根据所述主机端配置的板卡端寄存器信息,获取所述主机端根据板卡端内存空间主动生成的描述符的存储地址;RDMA模块,用于按照所述主机端主动生成的描述符的存储地址,从所述主机端中将描述符搬移至所述板卡端预留的描述符存储空间,以执行ReadDMA传输。优选地,所述WDMA模块包括:地址配置单元,用于当准备WriteDMA传输时,为所述板卡端的传输数据中的网络报文依次配置传输地址,其中,所述传输地址本文档来自技高网
...

【技术保护点】
1.一种适用于网络传输的DMA传输方法,其特征在于,应用于板卡端配置的直接存储器访问DMA控制器,包括:在Write DMA传输之前,预先将主机端预留的存储空间的地址依次写入所述板卡端配有的先进先出FIFO存储器,其中,所述主机端预留的存储空间是为存储所述板卡端的传输数据预留的空间;当准备Write DMA传输时,根据所述FIFO存储器中存储的地址和所述板卡端的传输数据的存储地址及数据大小自主生成描述符,并将所述描述符存储至所述板卡端预留的描述符存储空间,以执行Write DMA传输;在准备Read DMA传输时,根据所述主机端配置的板卡端寄存器信息,获取所述主机端根据板卡端内存空间主动生成的描述符的存储地址;按照所述主机端主动生成的描述符的存储地址,从所述主机端中将描述符搬移至所述板卡端预留的描述符存储空间,以执行Read DMA传输。

【技术特征摘要】
1.一种适用于网络传输的DMA传输方法,其特征在于,应用于板卡端配置的直接存储器访问DMA控制器,包括:在WriteDMA传输之前,预先将主机端预留的存储空间的地址依次写入所述板卡端配有的先进先出FIFO存储器,其中,所述主机端预留的存储空间是为存储所述板卡端的传输数据预留的空间;当准备WriteDMA传输时,根据所述FIFO存储器中存储的地址和所述板卡端的传输数据的存储地址及数据大小自主生成描述符,并将所述描述符存储至所述板卡端预留的描述符存储空间,以执行WriteDMA传输;在准备ReadDMA传输时,根据所述主机端配置的板卡端寄存器信息,获取所述主机端根据板卡端内存空间主动生成的描述符的存储地址;按照所述主机端主动生成的描述符的存储地址,从所述主机端中将描述符搬移至所述板卡端预留的描述符存储空间,以执行ReadDMA传输。2.如权利要求1所述的适用于网络传输的DMA传输方法,其特征在于,所述根据所述FIFO存储器中存储的地址和所述板卡端的传输数据的存储地址及数据大小自主生成描述符,并将所述描述符存储至所述板卡端预留的描述符存储空间,以执行WriteDMA传输,包括:为所述板卡端的传输数据中的网络报文依次配置传输地址,其中,所述传输地址为从所述FIFO存储器存储的地址中依次选择的地址;在为未配置的网络报文配置传输地址的同时,根据已配置的网络报文在所述板卡端的存储地址、数据大小及其对应的传输地址自主生成描述符,并将所述描述符依次存储至所述板卡端预留的描述符存储空间;在存储刚生成的描述符的同时,根据已存储的描述符执行WriteDMA传输。3.如权利要求2所述的适用于网络传输的DMA传输方法,其特征在于,该DMA传输方法还包括:预先将所述板卡端预留的描述符存储空间分为不同优先级的多组队列式存储空间;其中,优先级高的队列式存储空间中存储的描述符比优先级低的队列式存储空间中存储的描述符优先读取;则所述为所述板卡端的传输数据中的网络报文依次配置传输地址,包括:按照所述板卡端的传输数据中的网络报文的优先级,依次为所述网络报文配置传输地址;其中,优先级高的网络报文比优先级低的网络报文优先配置,且板卡端网络报文的优先级类别与所述队列式存储空间的优先级类别相同;所述将所述描述符依次存储至所述板卡端预留的描述符存储空间,包括:将所述描述符按照其对应的网络报文所属的优先级类别存储至相同类别的队列式存储空间。4.如权利要求1所述的适用于网络传输的DMA传输方法,其特征在于,所述按照所述主机端主动生成的描述符的存储地址,从所述主机端中将描述符搬移至所述板卡端预留的描述符存储空间,以执行ReadDMA传输,包括:在所述主机端配置板卡端寄存器信息的同时,按照所述主机端已主动生成的描述符的存储地址,从所述主机端中将描述符依次搬移至所述板卡端预留的描述符存储空间;在从所述主机端中搬移新生成的描述符的同时,根据已存储的描述符执行ReadDMA传输。5.如权利要求4所述的适用于网络传输的DMA传输方法,其特征在于,所述主机端主动生成的任一描述符包括:所述主机端的传输数据中一个网络报文在所述主机端的存储地址、该网络报文的数据大小,及该网络报文即将传输的所述板卡端的内存地址。6.如权利要求5所述的适用于网络传输的DMA传输方法,其特征在于,该DMA传输...

【专利技术属性】
技术研发人员:郝锐阚宏伟
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

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

1