一种CPU与FPGA之间的数据传输方法及系统技术方案

技术编号:30700594 阅读:17 留言:0更新日期:2021-11-06 09:36
本发明专利技术公开了一种CPU与FPGA之间的数据传输方法及系统,所述方法包括:通过在CPU端增加序号管理池,对所有数据报文添加序号;当第一数据报文到达FPGA之前,通过所述序号管理池对所述第一数据报文对应的序号进行排序和解序;获得所述第一数据报文从所述FPGA返回的应答序号;通过所述序号管理池对所述应答序号进行检索,获得第一检索结果;进一步确定是否对所述第一数据报文进行重新发送。解决了现有技术中存在CPU与FPGA之间进行大数据传输时出现的数据传输失败、传输速率下降的技术问题。达到了在数据传输失败时重新发送原始数据;同时保证不丢包的情况下最大限度提高传输速率,达到了传输速率动态调整的技术效果。了传输速率动态调整的技术效果。了传输速率动态调整的技术效果。

【技术实现步骤摘要】
一种CPU与FPGA之间的数据传输方法及系统


[0001]本专利技术涉及人工智能领域,尤其涉及一种CPU与FPGA之间的数据传输方法及系统。

技术介绍

[0002]在CPU与FPGA之间进行大数据传输时,常会由于FPGA的反压/阻塞问题,导致传输过程中数据丢失。为解决该问题,传统可靠传输分成为以下几种:停止

等待式(stop

and

wait)ARQ,后退N帧 (Go

Back

N)ARQ,以及选择重传(selective repeat)ARQ。
[0003]在停止

等待式ARQ中,数据报文发送完成之后,发送方需要等待接收方的状态报告,如果状态报告报文发送成功,发送后续的数据报文,否则重传该报文。该方法所需要的缓冲存储空间最小,缺点是信道效率很低;在后退N帧ARQ中,发信侧不用等待收信侧的应答,持续的发送多个帧,假如发现已发送的帧中有错误发生,那么从那个发生错误的帧开始及其之后所有的帧全部再重新发送,信道稳定的情况下,后退N帧方式与停止

等待式相比,等待时间更短,提高吞吐率;在选择重传ARQ中,发信侧不用等待收信侧的应答,持续的发送多个帧,假如发现已发送的帧中有错误发生,那么发信侧将只重新发送那个发生错误的帧。
[0004]本申请专利技术人在实现本申请实施例中专利技术技术方案的过程中,发现上述技术至少存在如下技术问题:
[0005]现有技术中存在CPU与FPGA之间进行大数据传输时,常会由于FPGA的反压和阻塞问题,传统的重传机制会导致数据传输失败、传输速率下降的技术问题。

技术实现思路

[0006]有鉴于此,本申请实施例通过提供一种CPU与FPGA之间的数据传输方法及系统,所述方法包括:通过在CPU端增加序号管理池;通过所述序号管理池,对所有数据报文添加序号;当第一数据报文到达FPGA之前,通过所述序号管理池对所述第一数据报文对应的序号进行排序和解序;获得所述第一数据报文从所述FPGA返回的应答序号;通过所述序号管理池对所述应答序号进行检索,获得第一检索结果;根据所述第一检索结果,确定是否对所述第一数据报文进行重新发送。解决了现有技术中存在CPU与FPGA之间进行大数据传输时,常会由于FPGA的反压和阻塞问题,导致数据传输失败、传输速率下降的技术问题。达到了通过数据发起方CPU端对数据接收方FPGA 返回的应答序号进行判断,当数据传输失败时,CPU端重新发送原始数据;同时保证在不丢包的情况下最大限度提高传输速率,达到了传输速率动态调整的技术效果。
[0007]鉴于上述问题,本申请实施例提供了一种CPU与FPGA之间的数据传输方法及系统。
[0008]第一方面,本申请提供了一种CPU与FPGA之间的数据传输方法,所述方法通过一种CPU与FPGA之间的数据传输系统实现,其中,所述方法包括:通过在CPU端增加序号管理池;通过所述序号管理池,对所有数据报文添加序号;当第一数据报文到达FPGA之前,通过所述序号管理池对所述第一数据报文对应的序号进行排序和解序;获得所述第一数据报文从所述FPGA返回的应答序号;通过所述序号管理池对所述应答序号进行检索,获得第一检索结
果;根据所述第一检索结果,确定是否对所述第一数据报文进行重新发送。
[0009]另一方面,本申请还提供了一种CPU与FPGA之间的数据传输系统,用于执行如第一方面所述的一种CPU与FPGA之间的数据传输方法,其中,所述系统包括:第一设置单元:所述第一设置单元用于在CPU端增加序号管理池;第一执行单元:所述第一执行单元用于通过所述序号管理池,对所有数据报文添加序号;第二执行单元:所述第二执行单元用于当第一数据报文到达FPGA之前,通过所述序号管理池对所述第一数据报文对应的序号进行排序和解序;第一获得单元:所述第一获得单元用于获得所述第一数据报文从所述FPGA返回的应答序号;第二获得单元:所述第二获得单元用于通过所述序号管理池对所述应答序号进行检索,获得第一检索结果;第一判断单元:所述第一判断单元用于根据所述第一检索结果,确定是否对所述第一数据报文进行重新发送。
[0010]第三方面,本申请实施例还提供了一种CPU与FPGA之间的数据传输系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述第一方面所述方法的步骤。
[0011]本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0012]1.通过在CPU端增加序号管理池;通过所述序号管理池,对所有数据报文添加序号;当第一数据报文到达FPGA之前,通过所述序号管理池对所述第一数据报文对应的序号进行排序和解序;获得所述第一数据报文从所述FPGA返回的应答序号;通过所述序号管理池对所述应答序号进行检索,获得第一检索结果;根据所述第一检索结果,确定是否对所述第一数据报文进行重新发送。达到了通过数据发起方 CPU端对数据接收方FPGA返回的应答序号进行判断,当数据传输失败时,CPU端重新发送原始数据的技术效果。
[0013]2.通过CPU与FPGA之间的数据传输方法还实现了流速控制功能,CPU端通过检测序号管理池状态发出相应的停止指令或发送指令,这样的机制达到了动态调整传输速率,针对于快速算法可提高传输速率,对于低速算法,则可以在不丢包的情况下最大限度提高传输速率的技术效果。
[0014]上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
[0015]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0016]图1为本申请实施例一种CPU与FPGA之间的数据传输方法的流程示意图;
[0017]图2为本申请实施例一种CPU与FPGA之间的数据传输方法中判断所述第一数据报文是否需要重新发送的流程示意图;
[0018]图3为本申请实施例一种CPU与FPGA之间的数据传输方法暂停数据传输方法的流程示意图;
[0019]图4为本申请实施例一种CPU与FPGA之间的数据传输方法以预定速率传输数据方
法的流程示意图;
[0020]图5为本申请实施例一种CPU与FPGA之间的数据传输系统的结构示意图;
[0021]图6为本申请实施例示例性电子设备的结构示意图。
[0022]附图标记说明:
[0023]第一设置单元11,第一执行单元12,第二执行单元13,第一获得单元14,第二获得单元15,第一判断单元16,总线300,接收器 301本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种CPU与FPGA之间的数据传输方法,其中,所述方法应用于一种CPU与FPGA之间的数据传输系统,所述方法包括:在CPU端增加序号管理池;通过所述序号管理池,对所有数据报文添加序号;当第一数据报文到达FPGA之前,通过所述序号管理池对所述第一数据报文对应的序号进行排序和解序;获得所述第一数据报文从所述FPGA返回的应答序号;通过所述序号管理池对所述应答序号进行检索,获得第一检索结果;根据所述第一检索结果,确定是否对所述第一数据报文进行重新发送。2.如权利要求1所述的方法,其中,所述在CPU端增加序号管理池,还包括:在CPU端设置驱动层,其中,所述序号管理池设于所述驱动层中。3.如权利要求2所述的方法,其中,所述方法还包括:在所述CPU端和所述驱动层之间增加中间件,其中,所述中间件包括所述序号管理池。4.如权利要求1所述的方法,其中,所述根据所述第一检索结果,确定是否对所述第一数据报文进行重新发送,包括:如果所述第一检索结果为所述应答序号落入所述序号管理池内,表示所述第一数据报文在所述CPU和所述FPGA之间传输正常,确定无需对所述第一数据报文进行重新发送。5.如权利要求1所述的方法,其中,所述根据所述第一检索结果,确定是否对所述第一数据报文进行重新发送,还包括:如果所述第一检索结果为所述应答序号未落入所述序号管理池内,标识所述第一数据报文在所述CPU和所述FPGA之间传输异常,...

【专利技术属性】
技术研发人员:谢元睿史晓岩
申请(专利权)人:联想长风科技北京有限公司
类型:发明
国别省市:

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

1