一种数据传输方法及相关装置与流程

文档序号:19247177发布日期:2019-11-27 19:46阅读:205来源:国知局
一种数据传输方法及相关装置与流程

本申请涉及计算机技术领域,特别涉及一种数据传输方法;还涉及一种数据传输装置、加速卡以及计算机可读存储介质。



背景技术:

随着异构加速日益广泛的应用,基于fpga(fieldprogrammablegatearray,现场可编程与门阵列)的加速卡也得到迅速发展。加速卡通过pcie接口与服务器主模块连接,服务器主模块通过pcie接口将需要加速的数据发送给加速卡,加速卡处理完成后通过pcie接口返回相关的数据。在此过程中,加速卡内部各模块之间有大量数据传输。各模块之间简单高效的进行数据传输且能够灵活可变的增加或者减少相关的功能模块连接越来越成为加速卡发展的关注焦点。目前,现有的avalon-st数据传输方式是一种比较简单高效的直接流传输方式,avalon流传输(avalon-st)接口可以被用户用来作为各组件的数据通信接口,该接口具有高带宽、低延时和非双向的特点。典型应用场合包括多数据流、数据包和dsp数据的传输。然而,avalon-st数据传输方法具有信号线较多、avalon-st接口只能是一对一传输,而不能一对多传输,从而对加速卡的发展产生一定的制约。

因此,如何简化线路并实现主模块与从模块间一对多的数据传输,以利于加速卡的发展已成为本领域技术人员亟待解决的技术问题。



技术实现要素:

本申请的目的是提供一种数据传输方法,能够有效简化线路并实现主模块与从模块间一对多的数据传输,利于加速卡的发展;本申请的另一目的是提供一种数据传输装置、加速卡以及计算机可读存储介质,均具有上述技术效果。

为解决上述技术问题,本申请提供了一种数据传输方法,包括:

接收从模块发送的准备接收数据信号并根据接收到的所述准备接收数据信号确定准备接收数据的所述从模块的个数;

若准备接收数据的所述从模块的个数为一个,则依次发送所述准备接收数据的所述从模块对应的传输通道编号以及数据,以使所述从模块识别对应的所述传输通道编号并接收对应的所述数据;

若准备接收数据的所述从模块的个数为多个,则交替发送各准备接收数据的所述从模块对应的所述传输通道编号与对应的所述数据,以使各所述从模块识别对应的所述传输通道编码并接收对应的所述数据。

可选的,所述交替发送各准备接收数据的所述从模块对应的所述传输通道编号与对应的所述数据,包括:

交替发送各准备接收数据的所述从模块对应的所述传输通道编号与对应的所述数据的全部字节。

可选的,所述交替发送各准备接收数据的所述从模块对应的所述传输通道编号与对应的所述数据,包括:

交替发送各准备接收数据的所述从模块对应的所述传输通道编号与对应的所述数据的部分字节,并循环所述交替发送各准备接收数据的所述从模块对应的所述传输通道编号与对应的所述数据的部分字节的操作,直至将各所述从模块对应的所述数据全部发送。

可选的,还包括:

当接收到所述从模块发送的停止接收数据信号后,暂停向所述从模块发送所述从模块对应的所述数据。

可选的,所述准备接收数据信号为低电平信号,所述停止接收数据信号为高电平信号。

为解决上述技术问题,本申请还提供了一种数据传输装置,包括:

接收模块,用于接收从模块发送的准备接收数据信号并根据接收到的所述准备接收数据信号确定准备接收数据的所述从模块的个数;

第一发送模块,用于若准备接收数据的所述从模块的个数为一个,则依次发送所述准备接收数据的所述从模块对应的传输通道编号以及数据,以使所述从模块识别对应的所述传输通道编号并接收对应的所述数据;

第二发送模块,用于若准备接收数据的所述从模块的个数为多个,则交替发送各准备接收数据的所述从模块对应的所述传输通道编号与对应的所述数据,以使各所述从模块识别对应的所述传输通道编码并接收对应的所述数据。

可选的,所述第二发送模块具体用于交替发送各准备接收数据的所述从模块对应的所述传输通道编号与对应的所述数据的全部字节。

可选的,所述第二发送模块具体用于交替发送各准备接收数据的所述从模块对应的所述传输通道编号与对应的所述数据的部分字节,并循环所述交替发送各准备接收数据的所述从模块对应的所述传输通道编号与对应的所述数据的部分字节的操作,直至将各所述从模块对应的所述数据全部发送。

为解决上述技术问题,本申请还提供了一种加速卡,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上所述的数据传输方法的步骤。

为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的数据传输方法的步骤。

本申请所提供的数据传输方法,包括接收从模块发送的准备接收数据信号并根据接收到的所述准备接收数据信号确定准备接收数据的所述从模块的个数;若准备接收数据的所述从模块的个数为一个,则依次发送所述准备接收数据的所述从模块对应的传输通道编号以及数据,以使所述从模块识别对应的所述传输通道编号并接收对应的所述数据;若准备接收数据的所述从模块的个数为多个,则交替发送各准备接收数据的所述从模块对应的所述传输通道编号与对应的所述数据,以使各所述从模块识别对应的所述传输通道编码并接收对应的所述数据。

可见,本申请所提供的数据传输方法,主模块与各从模块之间仅通过一根数据线相连,利用此数据线发送数据,另外,各从模块分别仅通过一根信号线与主模块相连,从而有效的简化了线路。此外,主模块采用发送传输通道编号以及数据的方式进行数据传输,各从模块只需识别自身对应的传输通道编号并接收该传输通道编号后从模块自身对应的数据,而对于不是自身传输通道编号后的数据则不接收,从而有效实现了主模块与从模块之间一对多的数据传输。

本申请所提供的数据传输装置、加速卡以及计算机可读存储介质,均具有上述技术效果。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所提供的一种数据传输方法的流程示意图;

图2为本申请实施例所提供的一种数据传输情景示意图;

图3为本申请实施例所提供的一种单通道数据传输示意图;

图4为本申请实施例所提供的一种多通道数据传输示意图;

图5为本申请实施例所提供的另一种多通道数据传输示意图;

图6为本申请实施例所提供的又一种多通道数据传输示意图。

具体实施方式

本申请的核心是提供一种数据传输方法,能够有效简化线路并实现主模块与从模块间一对多的数据传输,利于加速卡的发展;本申请的另一核心是提供一种数据传输装置、加速卡以及计算机可读存储介质,均具有上述技术效果。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种数据传输方法的流程示意图;参考图1所示,该数据传输方法包括:

s101:接收从模块发送的准备接收数据信号并根据接收到的准备接收数据信号确定准备接收数据的从模块的个数;

具体的,参考图2所示,master即加速卡内部的主模块与加速卡内部的各从模块即slave之间通过一条数据线相连,主模块可通过该数据线向从模块发送数据流。各从模块分别通过一根信号线与主模块相连,当从模块准备好接收数据时,从模块可通过对应的信号线向主模块发送准备接收数据信号。主模块在接收到从模块发送的准备接收数据信号后,便可根据准备接收数据信号确定哪些从模块准备好接收数据。其中,在一种具体的实施方式中,上述准备接收数据信号为低电平信号。

s102:若准备接收数据的从模块的个数为一个,则依次发送准备接收数据的从模块对应的传输通道编号以及数据,以使从模块识别对应的传输通道编号并接收对应的数据;

具体的,当准备好接收数据的从模块的个数为一个时,主模块此时仅发送一个传输通道编号以及对应的数据。具体而言,主模块首先数据线(9位数据线,最高位为标志位,标志当前的数据是表示开始、通道、数据还是结束)发送一个传输开始标志,进而发送该准备好接收数据的从模块对应的传输通道编号,并在发送传输通道编号后发送数据。该准备好结束数据的从模块在识别自身对应的该传输通道编号后,接收此传输通道编号后的数据。进一步,主模块在发送完数据后,发送一个传输结束标志。

参考图3所示的单通道数据传输示意图,以从模块1即slave1准备好接收数据为例,从模块1对应的传输通道编号为channel_0。于是,主模块首先发送一个传输开始标志sop,进而发送传统通道编号channel_0,并进一步在发送传统通道编号channel_0后,发送从模块1对应的数据data_ch0,以及在发送完数据data_ch0后,最后发送一个传输结束标志eop。从而,从模块1识别自身对应的传统通道编号channel_0后,接收数据data_ch0,而其他的从模块则不接收此数据data_ch0。

s103:若准备接收数据的从模块的个数为多个,则交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据,以使各从模块识别对应的传输通道编码并接收对应的数据。

具体的,当准备好接收数据的从模块的个数为多个时(两个及两个以上),主模块此时发送相应数量的传输通道编号以及对应的数据。具体而言,主模块首先发送一个传输开始标志,进而交替发送各准备接收数据的从模块对应的传输通道编号与数据。传输通道编号与在此传输通道编号后的数据为同一个从模块对应的传输通道编号与数据。主模块通过数据线发送的传输开始标志、各传输通道编号、数据均会到达各从模块的数据接口。传输通道编号到达各从模块的数据接口后,各从模块首先识别该传输通道编号是否为自身对应的传输通道编号,若是,则接收此传输通道编号后的数据,即从模块自身对应的数据。相反,若该传输通道编号不是自身对应的传输通道编号,则不接收此传输通道编号后的数据,即其他从模块对应的数据。其中,针对交替发送各准备好接收数据的从模块的传输通道编号的前后顺序,可根据从模块发送准备接收数据的先后等条件确定。

在一种具体的实施方式中,上述交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据可以包括交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据的全部字节。

具体的,本实施例中,主模块在发送从模块对应的传输通道编号后,主模块发送该从模块对应的数据的全部字节。参考图4所示,以准备好接收数据的从模块的个数为两个,分别为从模块1与从模块2为例,各从模块对应的传输通道编号分别为channel_0、channel_1。主模块发送传输开始标志后,可首先发送从模块1对应的传输通道编号channel_0,并在发送传输通道编号channel_0后,发送从模块1对应的数据data_ch0的全部字节;进而在发送从模块1对应的数据data_ch0的全部字节后,进一步发送从模块2对应的传输通道编号channel_1,并在发送传输通道编号channel_1后,发送从模块2对应的数据data_ch1的全部字节;并在发送完从模块1与从模块2的数据后,发送一个传输结束标志。

在另外一种具体的实施方式中,上述交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据可以包括交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据的部分字节,并循环交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据的部分字节的操作,直至将各从模块对应的数据全部发送。

具体的,本实施例中,主模块在发送从模块对应的传输通道编号后,主模块发送该从模块对应的数据的部分字节,并通过循环执行上述操作而实现发送从模块对应数据的全部字节。参考图5所示,同样,以准备好接收数据的从模块的个数为两个,分别为从模块1与从模块2为例,各从模块对应的传输通道编号分别为channel_0、channel_1。主模块发送传输开始标志后,可首先发送从模块1对应的传输通道编号channel_0,并在发送传输通道编号channel_0后,发送从模块2对应的数据data_ch0的一部分字节。在发送从模块1对应的数据data_ch0的一部分字节后,进一步发送从模块2对应的传输通道编号channel_1,并在发送传输通道编号channel_1后,发送从模块2对应的数据data_ch1的一部分字节。在发送从模块2对应的数据data_ch1的一部分字节后,进一步发送从模块1对应的传输通道编号channel_0,并在发送传输通道编号channel_0后,发送从模块1对应的数据data_ch0的又一部分字节。以及在发送从模块1对应的数据data_ch0的又一部分部分字节后,进一步发送从模块2对应的传输通道编号channel_1,并在发送传输通道编号channel_1后,发送从模块2对应的数据data_ch1的又一部分字节,如此循环,完成发送各从模块对应的数据的全部字节,并最终发送一个传输结束标志。

其中,对于每次发送字节的个数本申请不做具体限定,可以根据实际应用需要进行差异性设置。

进一步,还包括当接收到从模块通过对应的信号线发送的停止接收数据信号后,暂停向从模块发送从模块对应的数据。

具体的,在传输数据的过程中,当主模块接收到某个从模块通过对应的信号线发送的停止接收数据信号后(可以为高电平信号),主模块此时暂停发送此从模块对应的数据并可转而发送其他从模块对应的数据,在发送完成其他从模块对应的数据后,再发送此从模块对应的传输通道编号以及剩余数据,并在发送完各从模块对应的数据后发送一个传输结束标志。

参考图6所示,以主模块发送从模块1与从模块2对应的数据为例,若在主模块发送从模块1对应的数据data_ch0的两个字节后,主模块接收到从模块1发送的停止接收数据信号,此时,主模块停止发送从模块1对应的数据data_ch0的剩余字节,转而发送从模块2对应的传输通道编号channel_1以及从模块2对应的数据,并在发送完从模块2对应的数据后,再发送从模块1对应的传输通道channel_0以及数据data_ch0的剩余字节。

综上所述,本申请所提供的数据传输方法,主模块与各从模块之间仅通过一根数据线相连,利用此数据线发送数据,另外,各从模块分别仅通过一根信号线与主模块相连,从而有效的简化了线路。此外,主模块采用发送传输通道编号以及数据的方式进行数据传输,各从模块只需识别自身对应的传输通道编号并接收该传输通道编号后从模块自身对应的数据,而对于不是自身传输通道编号后的数据则不接收,从而有效实现主模块与从模块之间一对多的数据传输。

本申请还提供了一种数据传输装置,下文描述的该装置可以与上文描述的方法相互对应参照,该装置包括:

接收模块,用于接收从模块发送的准备接收数据信号并根据接收到的准备接收数据信号确定准备接收数据的从模块的个数;

第一发送模块,用于若准备接收数据的从模块的个数为一个,则依次发送准备接收数据的从模块对应的传输通道编号以及数据,以使从模块识别对应的传输通道编号并接收对应的数据;

第二发送模块,用于若准备接收数据的从模块的个数为多个,则交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据,以使各从模块识别对应的传输通道编码并接收对应的数据。

在上述实施例的基础上,作为一种具体的实施方式,第二发送模块具体用于交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据的全部字节。

在上述实施例的基础上,作为一种具体的实施方式,第二发送模块具体用于交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据的部分字节,并循环交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据的部分字节的操作,直至将各从模块对应的数据全部发送。

本申请还提供了一种加速卡,包括:存储器与处理器;其中,存储器用于存储计算机程序;处理器用于执行该计算机程序时实现如下的步骤:

接收从模块发送的准备接收数据信号并根据接收到的准备接收数据信号确定准备接收数据的从模块的个数;若准备接收数据的从模块的个数为一个,则依次发送准备接收数据的从模块对应的传输通道编号以及数据,以使从模块识别对应的传输通道编号并接收对应的数据;若准备接收数据的从模块的个数为多个,则交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据,以使各从模块识别对应的传输通道编码并接收对应的数据。

对于本申请所提供的加速卡的介绍请参照上述方法的实施例,本申请在此不做赘述。

本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如下的步骤:

接收从模块发送的准备接收数据信号并根据接收到的准备接收数据信号确定准备接收数据的从模块的个数;若准备接收数据的从模块的个数为一个,则依次发送准备接收数据的从模块对应的传输通道编号以及数据,以使从模块识别对应的传输通道编号并接收对应的数据;若准备接收数据的从模块的个数为多个,则交替发送各准备接收数据的从模块对应的传输通道编号与对应的数据,以使各从模块识别对应的传输通道编码并接收对应的数据。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

对于本发明所提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、加速卡以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦写可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的数据传输方法、装置、加速卡以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1