一种RapidIO数据交换方法、装置及系统与流程

文档序号:15567368发布日期:2018-09-29 03:39阅读:268来源:国知局

本发明涉及计算机技术领域,特别涉及一种rapidio数据交换方法、装置及系统。



背景技术:

在信息控制中心、呼叫中心等应用环境中,通常需要进行rapidio数据交换。

在先前的设计中,rapidio的数据交换,要求rapidio模块两端接口类型完全一致。比如,前端接口为rapidiox4的话,后端接口也是rapidiox4才能进行数据交换。

可见,现有实现方式不能支持rapidio模块两端接口类型不同时的rapidio数据交换。



技术实现要素:

本发明提供了一种rapidio数据交换方法、装置及系统,能够支持rapidio模块两端接口类型不同时的rapidio数据交换。

为了达到上述目的,本发明是通过如下技术方案实现的:

第一方面,本发明提供了一种rapidio数据交换方法,应用于fpga(fieldprogrammablegatearray,现场可编程逻辑门阵列),所述fpga的内部嵌入有至少一个rapidiox1接口和至少一个rapidiox4接口;包括:

针对每一个所述rapidiox1接口均执行:在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中;

在确定出所述ddr颗粒中存储有至少一个目标交换数据,任一所述目标交换数据中均携带有第一接收方标识,且所述至少一个目标交换数据的数据宽度等于所述第一接收方标识对应的预设数据宽度时,经一rapidiox4接口向目标rapidiox4主机发送所述至少一个目标交换数据,所述目标rapidiox4主机的预设唯一标识与所述第一接收方标识相同。

进一步地,所述fpga经一个rapidiox1接口,可连接rapidiox1主机的个数不大于1;任一rapidiox1接口的接口唯一标识为与其相连的rapidiox1主机的唯一标识;

所述fpga经一个rapidiox4接口,可连接rapidiox4主机的个数不大于1;任一rapidiox4接口的接口唯一标识为与其相连的rapidiox4主机的唯一标识。

进一步地,所述ddr颗粒中设置有与所述至少一个rapidiox1接口一一对应的至少一个发送类缓存模块;

所述在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中,包括:在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据缓存至所述当前rapidiox1接口对应的发送类缓存模块中;

所述至少一个目标交换数据位于同一发送类缓存模块中。

进一步地,所述fpga的内部嵌入有1个rapidiox4接口;

所述ddr颗粒中设置有与所述至少一个rapidiox1接口一一对应的至少一个接收类缓存模块。

进一步地,该方法还包括:针对每一个所述rapidiox4接口均执行:在接收到一rapidiox4主机经当前rapidiox4接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中;

针对所述ddr颗粒中存储的每一个交换数据均执行:将当前交换数据拆分为至少一个目的交换数据,任一所述目的交换数据的数据宽度均等于所述当前交换数据中携带的第二接收方标识对应的预设数据宽度,并经一rapidiox1接口向目的rapidiox1主机发送每一个所述目的交换数据,所述目的rapidiox1主机的预设唯一标识与所述第二接收方标识相同。

第二方面,本发明提供了一种fpga,所述fpga的内部嵌入有至少一个rapidiox1接口和至少一个rapidiox4接口;包括:

第一处理单元,用于针对每一个所述rapidiox1接口均执行:在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中;

第二处理单元,用于在确定出所述ddr颗粒中存储有至少一个目标交换数据,任一所述目标交换数据中均携带有第一接收方标识,且所述至少一个目标交换数据的数据宽度等于所述第一接收方标识对应的预设数据宽度时,经一rapidiox4接口向目标rapidiox4主机发送所述至少一个目标交换数据,所述目标rapidiox4主机的预设唯一标识与所述第一接收方标识相同。

进一步地,所述fpga经一个rapidiox1接口,可连接rapidiox1主机的个数不大于1;任一rapidiox1接口的接口唯一标识为与其相连的rapidiox1主机的唯一标识;

所述fpga经一个rapidiox4接口,可连接rapidiox4主机的个数不大于1;任一rapidiox4接口的接口唯一标识为与其相连的rapidiox4主机的唯一标识。

进一步地,所述至少一个rapidiox1接口一一对应有所述ddr颗粒中设置的至少一个发送类缓存模块;

所述第一处理单元,具体用于在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据缓存至所述当前rapidiox1接口对应的发送类缓存模块中;

所述至少一个目标交换数据位于同一发送类缓存模块中。

进一步地,所述fpga的内部嵌入有1个rapidiox4接口;

所述至少一个rapidiox1接口一一对应有所述ddr颗粒中设置的至少一个接收类缓存模块。

进一步地,所述第一处理单元,还用于针对每一个所述rapidiox4接口均执行:在接收到一rapidiox4主机经当前rapidiox4接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中;

所述第二处理单元,还用于针对所述ddr颗粒中存储的每一个交换数据均执行:将当前交换数据拆分为至少一个目的交换数据,任一所述目的交换数据的数据宽度均等于所述当前交换数据中携带的第二接收方标识对应的预设数据宽度,并经一rapidiox1接口向目的rapidiox1主机发送每一个所述目的交换数据,所述目的rapidiox1主机的预设唯一标识与所述第二接收方标识相同。

第三方面,本发明提供了一种rapidio数据交换系统,包括:

上述任一所述的fpga、至少一个rapidiox1主机、至少一个rapidiox4主机、ddr颗粒。

进一步地,所述rapidio数据交换系统包括4个rapidiox1主机和1个rapidiox4主机;

所述fpga的内部嵌入有4个rapidiox1接口和1个rapidiox4接口;

所述4个rapidiox1主机依次经所述4个rapidiox1接口与所述fpga相连,所述rapidiox4主机经所述rapidiox4接口与所述fpga相连;

所述ddr颗粒为ddr3颗粒,所述ddr3颗粒经所述fpga中的ddr3控制器与所述fpga相连;

所述ddr颗粒中设置有每一个rapidiox1接口对应的发送类缓存模块和接收类缓存模块。

本发明提供了一种rapidio数据交换方法、装置及系统,fpga针对内部嵌入的各rapidiox1接口:在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中;在确定出ddr颗粒中存储有至少一个目标交换数据,各目标交换数据中均携带有一接收方标识,且该至少一个目标交换数据的数据宽度等于该接收方标识对应的预设数据宽度时,经一rapidiox4接口向具有该接收方标识的rapidiox4主机发送该至少一个目标交换数据。因此,本发明能够支持rapidio模块两端接口类型不同时的rapidio数据交换。

附图说明

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

图1是本发明一实施例提供的一种rapidio数据交换方法的流程图;

图2是本发明一实施例提供的另一种rapidio数据交换方法的流程图;

图3是本发明一实施例提供的一种fpga的示意图;

图4是本发明一实施例提供的一种rapidio数据交换系统的示意图;

图5是本发明一实施例提供的另一种rapidio数据交换系统的示意图。

具体实施方式

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

如图1所示,本发明实施例提供了一种rapidio数据交换方法,应用于fpga,所述fpga的内部嵌入有至少一个rapidiox1接口和至少一个rapidiox4接口;可以包括以下步骤:

步骤101:针对每一个所述rapidiox1接口均执行:在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中。

步骤102:在确定出所述ddr颗粒中存储有至少一个目标交换数据,任一所述目标交换数据中均携带有第一接收方标识,且所述至少一个目标交换数据的数据宽度等于所述第一接收方标识对应的预设数据宽度时,经一rapidiox4接口向目标rapidiox4主机发送所述至少一个目标交换数据,所述目标rapidiox4主机的预设唯一标识与所述第一接收方标识相同。

本发明实施例提供了一种rapidio数据交换方法,fpga针对内部嵌入的各rapidiox1接口:在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中;在确定出ddr颗粒中存储有至少一个目标交换数据,各目标交换数据中均携带有一接收方标识,且该至少一个目标交换数据的数据宽度等于该接收方标识对应的预设数据宽度时,经一rapidiox4接口向具有该接收方标识的rapidiox4主机发送该至少一个目标交换数据。因此,本发明实施例能够支持rapidio模块两端接口类型不同时的rapidio数据交换。

详细地,为实现fpga与rapidiox1主机和rapidiox4主机之间的连接,可以在fpga的内部嵌入有rapidiox1接口和rapidiox4接口。如此,任一rapidiox1主机可以经一rapidiox1接口以与fpga保持连接,任一rapidiox4主机可以经一rapidiox4接口以与fpga保持连接。

详细地,fpga可以经同一rapidiox1接口与至少一个rapidiox1主机分别连接,经同一rapidiox4接口与至少一个rapidiox4主机分别连接。

详细地,将交换数据缓存至ddr颗粒中,不仅可以应对任一主机异常时易造成的数据丢失情况,还可以对数据按需处理后再输出数据,以缓解数据交换压力瞬间过大的情况。

通常情况下,rapidiox4主机所处理数据的数据长度相对较长,rapidiox1主机所处理数据的数据长度相对较短,由rapidiox1主机向rapidiox4主机发送数据时,可以凑齐所需数据长度后才输出数据,以方便各rapidiox4主机处理数据。

通常情况下,数据交换时,不仅需要明确接收方,接收方在接收到交换数据时,还需了解数据来源,故fpga接收到各个交换数据中,还可以包括有发送方标识。本发明实施例中,发送方标识可以为发送交换数据的rapidiox1主机的预设唯一标识。

在本发明一个实施例中,任一交换数据中,可以携带有不止一个接收方标识。如此,fpga可以将该交换数据分别发送给相应的各接收方。

当一个接口对应连接有多个主机时,数据发送方来源不一,故fpga在接收到交换数据时,还需根据其中的发送方标识、接收方标识对数据进行分类整理,故会增大数据处理压力。如此,为降低数据处理压力,可以令一个接口仅对应连接一个主机。

因此,在本发明一个实施例中,所述fpga经一个rapidiox1接口,可连接rapidiox1主机的个数不大于1;任一rapidiox1接口的接口唯一标识为与其相连的rapidiox1主机的唯一标识;

所述fpga经一个rapidiox4接口,可连接rapidiox4主机的个数不大于1;任一rapidiox4接口的接口唯一标识为与其相连的rapidiox4主机的唯一标识。

比如,fpga中内嵌有4个rapidiox1接口时,最多可连接4个rapidiox1主机。当主机数量小于接口数量时,可以存在空闲接口。

由于一个接口仅连接一个主机,故经同一接口发来的数据一定来自于同一发送方。由于fpga内部的数据控制模块与各接口直连,故为进一步方便数据整理,各主机标识即可以为其所连接接口的接口标识。

举例来说,存在4个rapidiox1接口时,对应的4个接口标识可以分别为a、b、c、d。如此,fpga一旦接收到经接口a发来的数据,即可将数据存储至对应于a这一接口标识的数据存储位置处,以方便fpga分类处理数据。当然,经接口a发来的数据,数据中携带的发送方标识即为a。

基于上述内容,在本发明一个实施例中,所述ddr颗粒中设置有与所述至少一个rapidiox1接口一一对应的至少一个发送类缓存模块;

所述在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中,包括:在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据缓存至所述当前rapidiox1接口对应的发送类缓存模块中;

所述至少一个目标交换数据位于同一发送类缓存模块中。

上述内容提到,为方便fpga分类管理数据,可以将经同一接口发来的数据存储至相同位置。如此,可以在ddr颗粒中设置各个rapidiox1接口唯一对应的发送类缓存模块。

举例来说,假设rapidiox1接口a对应于发送类缓存模块a,故可以将经该接口发来的数据直接存至发送类缓存模块a中。假设仅存在一个rapidiox4接口中,故fpga可以实时监控该发送类缓存模块a,只要一凑齐固定宽度数据,即可将该部分数据直接发送至当前唯一的rapidiox4接口。

当然,当存在多个rapidiox4接口时,说明存在多个接收方,故对于发送类缓存模块a中的全部数据,fpga监控数据宽度时,还需考虑各数据中携带的接收方标识。

本发明实施例中,限定上述至少一个目标交换数据位于同一发送类缓存模块中,即上述至少一个目标交换数据来自于同一发送方。

当然,基于不同的实际应用需求,当无需收发双方定向发送时,发送给同一接收方的数据还可以来源于不同的发送方。在此情况下,可以无需设置各rapidiox1接口对应的发送类缓存模块,将全部数据存在一起即可,凑齐所需数据宽度可以执行数据发送处理。

在本发明一个实施例中,所述fpga的内部嵌入有1个rapidiox4接口;

所述ddr颗粒中设置有与所述至少一个rapidiox1接口一一对应的至少一个接收类缓存模块。

当仅存在1个rapidiox4接口时,若由rapidiox4主机向rapidiox1主机发送数据,说明各个数据的发送方相同,接收方不一。

基于此,与发送类缓存模块的设置理由相类似的,为方便fpga管理数据,可以设置各rapidiox1接口对应的接收类缓存模块。

比如,rapidiox1接口a对应有接收类缓存模块a,故fpga可以依次将接收类缓存模块a中的每一个数据直接发送至rapidiox1接口a,而无需参考数据中携带的接收方标识。

基于上述内容可知,数据交换不仅可以涉及到由rapidiox1主机向rapidiox4主机发送数据,对应地,还可以由rapidiox4主机向rapidiox1主机发送数据。

在本发明一个实施例中,该方法还包括:针对每一个所述rapidiox4接口均执行:在接收到一rapidiox4主机经当前rapidiox4接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中;

针对所述ddr颗粒中存储的每一个交换数据均执行:将当前交换数据拆分为至少一个目的交换数据,任一所述目的交换数据的数据宽度均等于所述当前交换数据中携带的第二接收方标识对应的预设数据宽度,并经一rapidiox1接口向目的rapidiox1主机发送每一个所述目的交换数据,所述目的rapidiox1主机的预设唯一标识与所述第二接收方标识相同。

通常情况下,fpga接收到的各rapidiox4主机发来的各个交换数据中,同样可以包括有发送方标识。这里的发送方标识可以为发送交换数据的rapidiox4主机的预设唯一标识。此外,当一个接口仅连接一个主机时,该预设唯一标识即可以主机所连接口的接口唯一标识。

同上所述,一个接口仅连接一个主机,且ddr颗粒中设置有各rapidiox1接口对应有接收类缓存模块时,fpga可以将各rapidiox4主机发来的交换数据,缓存至各交换数据携带的接收方标识对应的接收类缓存模块中。这里的接收方标识即可为接口唯一标识。

如图2所示,本发明一个实施例提供了另一种rapidio数据交换方法,具体包括以下步骤:

步骤201:在fpga的内部嵌入4个rapidiox1接口和1个rapidiox4接口,设置各个接口的接口唯一标识。

假设4个rapidiox1接口的接口唯一标识分别为a、b、c、d,rapidiox4接口的接口唯一标识为e。

步骤202:将4个rapidiox1主机分别与4个rapidiox1接口相连,以及将1个rapidiox4主机与rapidiox4接口相连。

步骤203:设置各主机的主机唯一标识为其所连接接口的接口唯一标识,并设置各接口唯一标识对应的数据宽度。

步骤204:将fpga中的ddr3控制器与ddr3颗粒相连,并在ddr3颗粒中设置各rapidiox1接口对应的发送类缓存模块和接收类缓存模块。

步骤205:rapidiox1主机a经连接的rapidiox1接口a,向fpga发送交换数据1,该交换数据1中携带有发送方标识:a和接收方标识:e。

步骤206:fpga在接收到rapidiox1主机a经rapidiox1接口a发来的交换数据1时,将交换数据1缓存至rapidiox1接口a对应的发送类缓存模块a中。

步骤207:fpga在确定出发送类缓存模块a中存储的4个目标交互数据达到一帧数据时,经rapidiox4接口向rapidiox4主机发送该4个目标交互数据。

详细地,假设接收方标识:e对应的数据宽度为一帧。

步骤208:rapidiox4主机e经连接的rapidiox4接口e,向fpga发送交换数据2,该交换数据2中携带有发送方标识:e和接收方标识:c。

步骤209:fpga在接收到rapidiox4主机经rapidiox4接口发来的交换数据2时,将交换数据2缓存至rapidiox1接口c对应的接收类缓存模块c中。

假设交换数据2的数据宽度为一帧。

假设接收方标识:c对应的数据宽度为0.5帧。

步骤210:fpga针对接收类缓存模块c中的交换数据2,将交换数据拆分为2个0.5帧的目的交换数据,并经rapidiox1接口c向rapidiox1主机c发送每一个目的交换数据。

如图3所示,本发明一个实施例提供了一种fpga,所述fpga的内部嵌入有至少一个rapidiox1接口301和至少一个rapidiox4接口302;包括:

第一处理单元303,用于针对每一个所述rapidiox1接口均执行:在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中;

第二处理单元304,用于在确定出所述ddr颗粒中存储有至少一个目标交换数据,任一所述目标交换数据中均携带有第一接收方标识,且所述至少一个目标交换数据的数据宽度等于所述第一接收方标识对应的预设数据宽度时,经一rapidiox4接口向目标rapidiox4主机发送所述至少一个目标交换数据,所述目标rapidiox4主机的预设唯一标识与所述第一接收方标识相同。

详细地,fpga内部的数据控制模块可以包括有上述第一处理单元和第二处理单元。

在本发明一个实施例中,所述fpga经一个rapidiox1接口301,可连接rapidiox1主机的个数不大于1;任一rapidiox1接口301的接口唯一标识为与其相连的rapidiox1主机的唯一标识;

所述fpga经一个rapidiox4接口302,可连接rapidiox4主机的个数不大于1;任一rapidiox4接口302的接口唯一标识为与其相连的rapidiox4主机的唯一标识。

在本发明一个实施例中,所述至少一个rapidiox1接口301一一对应有所述ddr颗粒中设置的至少一个发送类缓存模块;

所述第一处理单元303,具体用于在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据缓存至所述当前rapidiox1接口对应的发送类缓存模块中;

所述至少一个目标交换数据位于同一发送类缓存模块中。

在本发明一个实施例中,所述fpga的内部嵌入有1个rapidiox4接口302;

所述至少一个rapidiox1接口301一一对应有所述ddr颗粒中设置的至少一个接收类缓存模块。

在本发明一个实施例中,所述第一处理单元303,还用于针对每一个所述rapidiox4接口均执行:在接收到一rapidiox4主机经当前rapidiox4接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中;

所述第二处理单元304,还用于针对所述ddr颗粒中存储的每一个交换数据均执行:将当前交换数据拆分为至少一个目的交换数据,任一所述目的交换数据的数据宽度均等于所述当前交换数据中携带的第二接收方标识对应的预设数据宽度,并经一rapidiox1接口向目的rapidiox1主机发送每一个所述目的交换数据,所述目的rapidiox1主机的预设唯一标识与所述第二接收方标识相同。

如图4所示,本发明实施例提供了一种rapidio数据交换系统,包括:

上述任一所述的fpga401、至少一个rapidiox1主机402、至少一个rapidiox4主机403、ddr颗粒404。

在本发明一个实施例中,请参考图5,所述rapidio数据交换系统包括4个rapidiox1主机402和1个rapidiox4主机403;

除了包括第一处理单元4011和第二处理单元4012外,所述fpga401的内部嵌入有4个rapidiox1接口4013和1个rapidiox4接口4014;

所述4个rapidiox1主机402依次经所述4个rapidiox1接口4013与所述fpga401相连,所述rapidiox4主机403经所述rapidiox4接口4014与所述fpga401相连;

所述ddr颗粒404为ddr3颗粒,所述ddr3颗粒经所述fpga401中的ddr3控制器4015与所述fpga401相连;

所述ddr颗粒404中设置有每一个rapidiox1接口对应的发送类缓存模块4041和接收类缓存模块4042。

详细地,fpga的内部可以存在一数据控制模块,其中包括有上述第一处理单元和第二处理单元。

上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

综上所述,本发明的各个实施例至少具有如下有益效果:

1、本发明实施例中,fpga针对内部嵌入的各rapidiox1接口:在接收到一rapidiox1主机经当前rapidiox1接口发来的、携带有接收方标识的交换数据时,将该交换数据存储至ddr颗粒中;在确定出ddr颗粒中存储有至少一个目标交换数据,各目标交换数据中均携带有一接收方标识,且该至少一个目标交换数据的数据宽度等于该接收方标识对应的预设数据宽度时,经一rapidiox4接口向具有该接收方标识的rapidiox4主机发送该至少一个目标交换数据。因此,本发明实施例能够支持rapidio模块两端接口类型不同时的rapidio数据交换。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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