数据通信方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:31629338 阅读:23 留言:0更新日期:2021-12-29 19:07
本申请公开了一种数据通信方法、装置、电子设备及可读存储介质。其中,方法包括将用户态的多个用户线程同时分别拷贝至内核态对应的缓存区中,并为各用户线程分配相应的线程标识信息。对每个用户线程,将基于当前用户线程对应的缓存区和线程标识信息所生成FPGA数据包传输至FPGA,并通知内核线程,以使内核线程对接收到的目标FPGA数据包和当前用户线程进行线程一致性校验;若校验成功,则内核线程向当前用户线程发送唤醒指令,以使当前用户线程将内核态数据拷贝至用户态缓存区,从而可有效解决高并发下多个线程同时与FPGA通信所导致的惊群现象。的惊群现象。的惊群现象。

【技术实现步骤摘要】
数据通信方法、装置、电子设备及可读存储介质


[0001]本申请涉及计算机
,特别是涉及一种数据通信方法、装置、电子设备及可读存储介质。

技术介绍

[0002]随着集成电路的快速发展,FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)被广泛应用于网关控制器加速、通信数据安全等
,FPGA通过usb(Universal Serial Bus,通用串行总线)、spi(Serial Peripheral Interface,串行外设接口)等总线与linux主机连接,这一类的总线在linux中都有成熟的框架支持,所以其得到了广泛的应用。
[0003]在usb、spi等总线的框架之上的设备驱动有一个共同的特点是没有硬件中断可用,一般的调用流程为:如图1所示,用户线程准备原始数据,通过系统调用接口,由用户态陷入到内核态,所有线程争抢互斥锁,抢不到互斥锁的线程睡眠等待,抢到锁的线程进行下一步操作,将用户态数据拷贝到内核态,并化成FPGA识别的数据包,调用发送同步接口,将数据包传输到FPGA,再调用接收同步接口,收取从FPGA来的数据包,拆封数据包并将数据拷贝至用户态缓冲区。
[0004]相关技术的这种FPGA的调用方式,在线程数量较少的低并发、通信速率较低的场景下可以正常的工作。但是,对于线程数量较多的高并发、通信速率较高的场景下,虽然其看起来支持多线程应用,但在一个时刻只有一个线程与FPGA通信,并没有有效利用与FPGA通信的总线带宽和FPGA算力资源。而且当一个线程完成与FPGA通信后,释放互斥锁,这会唤醒睡在互斥锁上所有的线程,线程再次争抢互斥锁,导致了出现惊群现象。
[0005]基于此,如何解决高并发下多个线程同时与FPGA通信所导致的惊群现象,是所属领域技术人员需要解决的技术问题。

技术实现思路

[0006]本申请提供了一种数据通信方法、装置、电子设备及可读存储介质,可以解决高并发下多个线程同时与FPGA通信所导致的惊群现象。
[0007]为解决上述技术问题,本专利技术实施例提供以下技术方案:
[0008]本专利技术实施例一方面提供了一种数据通信方法,包括:
[0009]将用户态的多个用户线程同时分别拷贝至内核态对应的缓存区中,并为各用户线程分配相应的线程标识信息;
[0010]对每个用户线程,将基于当前用户线程对应的缓存区和线程标识信息所生成FPGA数据包传输至FPGA,并通知内核线程,以使所述内核线程对接收到的目标FPGA数据包和所述当前用户线程进行线程一致性校验;
[0011]若校验成功,则所述内核线程向所述当前用户线程发送唤醒指令,以使所述当前用户线程将内核态数据拷贝至所述用户态缓存区。
[0012]可选的,所述内核线程对接收到的目标FPGA数据包和所述当前用户线程进行线程一致性校验,包括:
[0013]所述内核线程通过对所述目标FPGA数据包进行解封处理,确定FPGA工作数据;
[0014]判断所述FPGA工作数据中的校验信息和所述线程标识信息中的校验信息是否相同;
[0015]若所述FPGA工作数据中的校验信息和所述线程标识信息中的校验信息相同,则所述目标FPGA数据包为所述当前用户线程的FPGA数据包,校验成功;若所述FPGA工作数据中的校验信息和所述线程标识信息中的校验信息不相同,则所述目标FPGA数据包不属于所述当前用户线程,校验失败。
[0016]可选的,所述内核线程通过对所述目标FPGA数据包进行解封处理,确定FPGA工作数据,包括:
[0017]所述内核线程对所述目标FPGA数据包进行解封处理,得到所述目标FPGA数据包的目标线程标识信息;所述目标线程标识信息包括驱动id和校验值;
[0018]根据所述驱动id确定所述FPGA工作数据。
[0019]可选的,所述内核线程对接收到的目标FPGA数据包和所述当前用户线程进行线程一致性校验之后,还包括:
[0020]将所述目标FPGA数据包指针与FPGA工作数据中的FPGA反馈数据的指针交换;
[0021]其中,所述FPGA工作数据为所述内核线程对所述目标FPGA数据包进行解封处理所得;所述FPGA工作数据包括任务数据、线程标识信息、发送FPGA数据和FPGA反馈数据。
[0022]可选的,所述内核线程向所述当前用户线程发送唤醒指令为:
[0023]所述内核线程通过所述任务数据唤醒所述当前用户线程。
[0024]可选的,所述将基于当前用户线程对应的缓存区和线程标识信息所生成FPGA数据包传输至FPGA,包括:
[0025]将当前用户线程对应的缓存区和线程标识信息格式化为FPGA数据包;
[0026]调用发送同步接口,将所述FPGA数据包传输至FPGA;相应的,所述内核线程调用同步接口获取目标FPGA数据包。
[0027]本专利技术实施例另一方面提供了一种数据通信装置,包括:
[0028]线程拷贝模块,用于将用户态的多个用户线程同时分别拷贝至内核态对应的缓存区中;
[0029]对应关系建立模块,用于为各用户线程分配相应的线程标识信息;
[0030]内核校验模块,用于对每个用户线程,将基于当前用户线程对应的缓存区和线程标识信息所生成FPGA数据包传输至FPGA,并通知内核线程,以使所述内核线程对接收到的目标FPGA数据包和所述当前用户线程进行线程一致性校验;
[0031]唤醒模块,用于若校验成功,则所述内核线程向所述当前用户线程发送唤醒指令,以使所述当前用户线程将内核态数据拷贝至所述用户态缓存区。
[0032]可选的,所述内核校验模块进一步用于:
[0033]所述内核线程通过对所述目标FPGA数据包进行解封处理,确定FPGA工作数据;
[0034]判断所述FPGA工作数据中的校验信息和所述线程标识信息中的校验信息是否相同;
[0035]若所述FPGA工作数据中的校验信息和所述线程标识信息中的校验信息相同,则所述目标FPGA数据包为所述当前用户线程的FPGA数据包,校验成功;若所述FPGA工作数据中的校验信息和所述线程标识信息中的校验信息不相同,则所述目标FPGA数据包不属于所述当前用户线程,校验失败。
[0036]本专利技术实施例还提供了一种电子设备,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述数据通信方法的步骤。
[0037]本专利技术实施例最后还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前任一项所述数据通信方法的步骤。
[0038]本申请提供的技术方案的优点在于,将多个用户线程均拷贝至内核态中,支持同一时刻多个线程同时与FPGA进行通信,可有效利用与FPGA通信的总线带宽和FPGA算力资源,有效提高总线带宽和资源的利用率。通过内核进程唤醒相应的用户线程去将内核态数据拷贝至用户态,而不本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据通信方法,其特征在于,包括:将用户态的多个用户线程同时分别拷贝至内核态对应的缓存区中,并为各用户线程分配相应的线程标识信息;对每个用户线程,将基于当前用户线程对应的缓存区和线程标识信息所生成FPGA数据包传输至FPGA,并通知内核线程,以使所述内核线程对接收到的目标FPGA数据包和所述当前用户线程进行线程一致性校验;若校验成功,则所述内核线程向所述当前用户线程发送唤醒指令,以使所述当前用户线程将内核态数据拷贝至所述用户态缓存区。2.根据权利要求1所述的数据通信方法,其特征在于,所述内核线程对接收到的目标FPGA数据包和所述当前用户线程进行线程一致性校验,包括:所述内核线程通过对所述目标FPGA数据包进行解封处理,确定FPGA工作数据;判断所述FPGA工作数据中的校验信息和所述线程标识信息中的校验信息是否相同;若所述FPGA工作数据中的校验信息和所述线程标识信息中的校验信息相同,则所述目标FPGA数据包为所述当前用户线程的FPGA数据包,校验成功;若所述FPGA工作数据中的校验信息和所述线程标识信息中的校验信息不相同,则所述目标FPGA数据包不属于所述当前用户线程,校验失败。3.根据权利要求2所述的数据通信方法,其特征在于,所述内核线程通过对所述目标FPGA数据包进行解封处理,确定FPGA工作数据,包括:所述内核线程对所述目标FPGA数据包进行解封处理,得到所述目标FPGA数据包的目标线程标识信息;所述目标线程标识信息包括驱动id和校验值;根据所述驱动id确定所述FPGA工作数据。4.根据权利要求1至3任意一项所述的数据通信方法,其特征在于,所述内核线程对接收到的目标FPGA数据包和所述当前用户线程进行线程一致性校验之后,还包括:将所述目标FPGA数据包指针与FPGA工作数据中的FPGA反馈数据的指针交换;其中,所述FPGA工作数据为所述内核线程对所述目标FPGA数据包进行解封处理所得;所述FPGA工作数据包括任务数据、线程标识信息、发送FPGA数据和FPGA反馈数据。5.根据权利要求4所述的数据通信方法,其特征在...

【专利技术属性】
技术研发人员:张少文王彦伟樊嘉恒阚宏伟
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:

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

1