[发明专利]数据通信方法、装置、电子设备及可读存储介质在审
申请号: | 202111149416.6 | 申请日: | 2021-09-29 |
公开(公告)号: | CN113849238A | 公开(公告)日: | 2021-12-28 |
发明(设计)人: | 张少文;王彦伟;樊嘉恒;阚宏伟 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401;G06F9/50 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王晓芬 |
地址: | 250101 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据通信 方法 装置 电子设备 可读 存储 介质 | ||
本申请公开了一种数据通信方法、装置、电子设备及可读存储介质。其中,方法包括将用户态的多个用户线程同时分别拷贝至内核态对应的缓存区中,并为各用户线程分配相应的线程标识信息。对每个用户线程,将基于当前用户线程对应的缓存区和线程标识信息所生成FPGA数据包传输至FPGA,并通知内核线程,以使内核线程对接收到的目标FPGA数据包和当前用户线程进行线程一致性校验;若校验成功,则内核线程向当前用户线程发送唤醒指令,以使当前用户线程将内核态数据拷贝至用户态缓存区,从而可有效解决高并发下多个线程同时与FPGA通信所导致的惊群现象。
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据通信方法、装置、电子设备及可读存储介质。
背景技术
随着集成电路的快速发展,FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)被广泛应用于网关控制器加速、通信数据安全等技术领域,FPGA通过usb(Universal Serial Bus,通用串行总线)、spi(Serial Peripheral Interface,串行外设接口)等总线与linux主机连接,这一类的总线在linux中都有成熟的框架支持,所以其得到了广泛的应用。
在usb、spi等总线的框架之上的设备驱动有一个共同的特点是没有硬件中断可用,一般的调用流程为:如图1所示,用户线程准备原始数据,通过系统调用接口,由用户态陷入到内核态,所有线程争抢互斥锁,抢不到互斥锁的线程睡眠等待,抢到锁的线程进行下一步操作,将用户态数据拷贝到内核态,并化成FPGA识别的数据包,调用发送同步接口,将数据包传输到FPGA,再调用接收同步接口,收取从FPGA来的数据包,拆封数据包并将数据拷贝至用户态缓冲区。
相关技术的这种FPGA的调用方式,在线程数量较少的低并发、通信速率较低的场景下可以正常的工作。但是,对于线程数量较多的高并发、通信速率较高的场景下,虽然其看起来支持多线程应用,但在一个时刻只有一个线程与FPGA通信,并没有有效利用与FPGA通信的总线带宽和FPGA算力资源。而且当一个线程完成与FPGA通信后,释放互斥锁,这会唤醒睡在互斥锁上所有的线程,线程再次争抢互斥锁,导致了出现惊群现象。
基于此,如何解决高并发下多个线程同时与FPGA通信所导致的惊群现象,是所属领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种数据通信方法、装置、电子设备及可读存储介质,可以解决高并发下多个线程同时与FPGA通信所导致的惊群现象。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种数据通信方法,包括:
将用户态的多个用户线程同时分别拷贝至内核态对应的缓存区中,并为各用户线程分配相应的线程标识信息;
对每个用户线程,将基于当前用户线程对应的缓存区和线程标识信息所生成FPGA数据包传输至FPGA,并通知内核线程,以使所述内核线程对接收到的目标FPGA数据包和所述当前用户线程进行线程一致性校验;
若校验成功,则所述内核线程向所述当前用户线程发送唤醒指令,以使所述当前用户线程将内核态数据拷贝至所述用户态缓存区。
可选的,所述内核线程对接收到的目标FPGA数据包和所述当前用户线程进行线程一致性校验,包括:
所述内核线程通过对所述目标FPGA数据包进行解封处理,确定FPGA工作数据;
判断所述FPGA工作数据中的校验信息和所述线程标识信息中的校验信息是否相同;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111149416.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:对象搜索方法、装置、电子设备及存储介质
- 下一篇:一种压驱阀及使用方法