可左右滑动选省市

一种板卡间数据交换方法、装置、设备及存储介质

更新时间:2024-02-23
一种板卡间数据交换方法、装置、设备及存储介质 专利申请类型:实用新型专利;
地区:江苏-南京;
源自:南京高价值专利检索信息库;

专利名称:一种板卡间数据交换方法、装置、设备及存储介质

专利类型:实用新型专利

专利申请号:CN202111068942.X

专利申请(专利权)人:南京南瑞继保电气有限公司,南京南瑞继保工程技术有限公司
权利人地址:江苏省南京市江宁经济技术开发区苏源大道69号

专利发明(设计)人:仲浩,周强,赵天恩,陈龙,李响

专利摘要:本申请公开一种板卡间数据交换方法、装置、设备及存储装置,板卡包括第一板卡和第二板卡,第一板卡的PCIE控制器和第二板卡的PCIE控制器相连建立PCIE通道;该方法包括:控制第一板卡将第一板卡数据通过PCIE通道发送至第二板卡;控制第一板卡通过PCIE通道接收第二板卡发送的第二板卡数据。如此,第一板卡与第二板卡通过PCIE通道实现板卡间的数据交换;PCIE属于高速串行点对点高带宽传输,带宽远大于传统方式板卡间数据传输时带宽,实现第一板卡与第二板卡间数据高速交换,提高数据交换速率。

主权利要求:
1.一种板卡间数据交换方法,其特征在于,所述板卡包括第一板卡和第二板卡,所述第一板卡的高速串行计算机扩展总线标准PCIE控制器和所述第二板卡的PCIE控制器相连建立PCIE通道;所述方法包括:控制所述第一板卡将第一板卡数据通过所述PCIE通道发送至所述第二板卡;
控制所述第一板卡通过所述PCIE通道接收所述第二板卡发送的第二板卡数据;
所述板卡还包括存储缓存区,所述存储缓存区包括第一存储区和第二存储区,所述第一存储区用于存储所述第一板卡数据,第二存储区用于存储所述第二板卡数据;
所述方法还包括:
根据预先设定的板卡数据传输延时,确定存储缓存区数量。
2.根据权利要求1所述的方法,其特征在于,所述板卡还包括第三板卡,所述方法还包括:控制所述第一板卡将所述第二板卡数据通过所述PCIE通道转发至所述第三板卡。
3.根据权利要求2所述的方法,其特征在于,所述方法包括:控制所述第一板卡上直接存储器访问DMA控制器,将所述第一板卡数据通过所述PCIE通道发送至所述第二板卡;
控制所述第一板卡接收所述第二板卡上DMA控制器通过所述PCIE通道发送的所述第二板卡数据;
控制所述第一板卡上DMA控制器,将所述第二板卡数据通过所述PCIE通道转发至所述第三板卡。
4.根据权利要求3所述的方法,其特征在于,
所述存储缓存区还包括第三存储区,所述第三存储区用于存储第三板卡数据。
5.根据权利要求1所述的方法,其特征在于,
若所述板卡数据传输延时为M个任务周期,则所述存储缓存区数据量为M+1;其中,M为大于等于1的整数。
6.根据权利要求1所述的方法,其特征在于,所述板卡包括多个存储缓存区时,所述方法还包括:根据预先设定的板卡数据传输延时,从多个存储缓存区去确定满足所述数据传输延时的目标存储缓存区;
从所述目标存储缓存区内提取全部存储区的数据以供所述板卡进行处理。
7.根据权利要求2所述的方法,其特征在于,所述第一板卡的通用输入/输出口GPIO与所述第二板卡的GPIO相连建立GPIO通道;所述方法还包括:所述第一板卡接收到所述第二板卡通过所述GPIO通道发送的控制信号时,触发所述第一板卡进入中断,以控制所述第一板卡将所述第二板卡数据通过所述PCIE通道转发至所述第三板卡;
其中,所述控制信号用于表征所述第二板卡数据发送完成。
8.一种板卡间数据交换装置,其特征在于,所述板卡包括第一板卡和第二板卡,所述板卡还包括存储缓存区,所述存储缓存区包括第一存储区和第二存储区,所述第一存储区用于存储第一板卡数据,第二存储区用于存储第二板卡数据;所述第一板卡的PCIE控制器和所述第二板卡的PCIE控制器相连建立PCIE通道;所述装置包括:控制单元,用于控制所述第一板卡将第一板卡数据通过所述PCIE通道发送至所述第二板卡;
所述控制单元,用于控制所述第一板卡通过所述PCIE通道接收所述第二板卡发送的第二板卡数据;
所述控制单元,还用于根据预先设定的板卡数据传输延时,确定存储缓存区数量。
9.一种数据交换设备,其特征在于,所述数据交换设备包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器配置为运行所述计算机程序时,执行权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7任一项所述的方法的步骤。 说明书 : 一种板卡间数据交换方法、装置、设备及存储介质技术领域[0001] 本申请涉及电力系统保护控制技术,尤其涉及一种板卡间数据交换方法、装置、设备及存储介质。背景技术[0002] 目前应用于电力系统保护控制领域的设备大多为多板卡分布式计算架构,每个板卡负责实现部分功能,多板卡协同完成整个设备功能。各板卡间需要相互交换数据从而实现协同工作。通常设备内多个板卡通过背板总线方式连接在一起,背板总线性能直接影响装置性能。常用的背板总线有并行背板总线和串行背板总线两种形式,并行背板总线由于高频下存在时钟抖动和偏斜情况造成其不能使用较高的总线频率,从而影响了数据传输速率。串行总线主要采用低电压差分信号(LowVoltageDifferentialSignaling,LVDS)技术,它使用幅度非常低的信号(约350mv)通过一对差分印制电路板(PrintedCircuitBoard,PCB)走线或者平衡电缆传输数据,传输速率高达数千Mb/s的速度传送串行数据,但受高频器件及距离影响,传输速率通常在几百Mb/s。发明内容[0003] 为解决上述技术问题,本申请期望提供一种板卡间数据交换方法、装置、设备及存储介质。[0004] 本申请的技术方案是这样实现的:[0005] 第一方面,提供了一种板卡间数据交换方法,所述板卡包括第一板卡和第二板卡,所述第一板卡的PCIE控制器和所述第二板卡的PCIE控制器相连建立PCIE通道;所述方法包括:[0006] 控制所述第一板卡将第一板卡数据通过所述PCIE通道发送至所述第二板卡;[0007] 控制所述第一板卡通过所述PCIE通道接收所述第二板卡发送的第二板卡数据。[0008] 上述方案中,所述第二板卡包括第二板卡和第三板卡,所述方法还包括:控制所述第一板卡将所述第二板卡数据通过所述PCIE通道转发至所述第三板卡。[0009] 上述方案中,所述方法包括:控制所述第一板卡上直接存储器DMA控制器,将所述第一板卡数据通过所述PCIE通道发送至所述第二板卡;控制所述第一板卡接收所述第二板卡上DMA控制器通过所述PCIE通道发送的第二板卡数据;控制所述第一板卡上DMA控制器,将所述第二板卡数据通过所述PCIE通道转发至所述第三板卡。[0010] 上述方案中,所述板卡包括存储缓存区,所述存储缓存区包括第一存储区、第二存储区和第三存储区,所述第一存储区用于存储所述第一板卡数据,第二存储区用于存储所述第二板卡数据,第三存储区用于存储第三板卡数据。[0011] 上述方案中,所述方法还包括:根据预先设定的板卡数据传输延时,确定存储缓存区数量。[0012] 上述方案中,若所述板卡数据传输延时为M个任务周期,则所述存储缓存区数据量为M+1;其中,M为大于等于1的整数。[0013] 上述方案中,所述板卡包括多个存储缓存区时,所述方法还包括:根据预先设定的板卡数据传输延时,从多个存储缓存区去确定满足所述数据传输延时的目标存储缓存区;从所述目标存储缓存区内提取全部存储区的数据进行处理。[0014] 上述方案中,所述第一板卡的GPIO与所述第二板卡的GPIO相连建立GPIO通道;所述方法还包括:所述第一板卡接收到所述第二板卡通过所述GPIO通道发送的控制信号时,触发所述第一板卡进入中断,以控制所述第一板卡将第二板卡数据通过所述PCIE通道转发至所述第三板卡;其中,所述控制信号用于表征所述第二板卡数据发送完成。[0015] 第二方面,提供了一种板卡间数据交换装置,其特征在于,所述板卡包括第一板卡和第二板卡,所述第一板卡的PCIE控制器和所述第二板卡的PCIE控制器相连建立PCIE通道;所述装置包括:[0016] 控制单元,用于控制所述第一板卡将第一板卡数据通过所述PCIE通道发送至所述第二板卡;[0017] 所述控制单元,用于控制所述第一板卡通过所述PCIE通道接收所述第二板卡发送的第二板卡数据。[0018] 第三方面,提供了一种数据交换设备,包括:处理器和配置为存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器配置为运行所述计算机程序时,执行前述方法的步骤。[0019] 第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该计算机程序被处理器执行时实现前述方法的步骤。[0020] 采用上述技术方案,第一板卡与第二板卡通过PCIE通道实现板卡间的数据交换;PCIE属于高速串行点对点高带宽传输,带宽远大于传统方式板卡间数据传输时带宽,实现第一板卡与第二板卡间数据高速交换,提高数据交换速率。附图说明[0021] 图1为本申请实施例中板卡间数据交换方法的第一流程示意图;[0022] 图2为本申请实施例中存储缓存区示意图;[0023] 图3为本申请实施例中主板卡、第一从板卡、第二从板卡和背板之间的连接示意图;[0024] 图4为本申请实施例中板卡间数据交换方法的第二流程示意图;[0025] 图5为本申请实施例中板卡间数据交换方法的第三流程示意图;[0026] 图6为本申请实施例中主板卡存储缓存区数据接收流程示意图;[0027] 图7为本申请实施例中第一从板卡存储缓存区数据接收流程示意图;[0028] 图8为本申请实施例中板卡间数据交换装置组成的结构示意图;[0029] 图9为本申请实施例中数据交换设备组成的结构示意图。具体实施方式[0030] 为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。[0031] 首先需要说明的是,每个板卡负责实现设备的部分功能,多板卡协同完成整个设备功能。各板卡间需要相互交换数据从而实现协同工作。因此,本申请提出一种板卡间数据交换方法,目的是实现各板卡间的数据交换,使得每个板卡具备所有板卡的板卡数据,每个板卡实现相对应功能,进而多板卡协同完成整个设备功能。[0032] 本申请实施例提供了一种板卡间数据交换方法,图1为本申请实施例中板卡间数据交换方法的第一流程示意图。[0033] 本申请提及的板卡包括第一板卡和第二板卡,第一板卡的高速串行计算机扩展总线标准(PeripheralComponentInterconnectExpress,PCIE)控制器和第二板卡的PCIE控制器相连建立PCIE通道。其中,板卡是一种印制电路板,简称PCB板,制作时带有插芯,可以插入计算机的主电路板的插槽中,用来控制硬件的运行,比如显示器、采集卡等设备,安装驱动程序后,即可实现相应的硬件功能。[0034] 实际应用中,该板卡间数据交换方法可应用于电力控制保护设备,该电力控制保护设备包括第一板卡、第二板卡和背板,背板将第一板卡的PCIE控制器与第二板卡的PCIE控制器通过指定PCIE通道连接在一起。即背板为第一板卡和第二板卡提供连接的槽位,使得板卡间通过背板的总线进行通讯。[0035] 如图1所示,该板卡间数据交换方法具体可以包括:[0036] 步骤101:控制所述第一板卡将第一板卡数据通过所述PCIE通道发送至所述第二板卡。[0037] 这里,第一板卡数据为第一板卡在任务周期内执行任务所产生的数据。[0038] 这里,PCIE属于高速串行点对点双通道高带宽传输,带宽远大于传统方式板卡间数据传输时带宽,使得数据传输速率得到极大提升。[0039] 步骤102:控制所述第一板卡通过所述PCIE通道接收所述第二板卡发送的第二板卡数据。[0040] 这里,第二板卡数据为第二板卡在任务周期内执行任务所产生的数据。[0041] 在一些实施例中,所述板卡包括存储缓存区,所述存储缓存区包括第一存储区和第二存储区,所述第一存储区用于存储所述第一板卡数据,所述第二存储区用于存储所述第二板卡数据。[0042] 也就是说,通过在第一板卡和第二板卡分别设置包括第一存储区和第二存储区的存储缓存区,使得第一板卡将在任务周期内执行任务所产生的第一板卡数据缓存至第一存储区,第一板卡将通过PCIE通道接收到的第二板卡数据缓存至第二存储区;第二板卡将在任务周期内执行任务所产生的第二板卡数据缓存至第二存储区,第二板卡将通过PCIE通道接收到的第一板卡数据缓存至第一存储区,即实现第一板卡与第二板卡之间的数据交换。[0043] 需要说明的是,上述提及的板卡种类也不作具体限定,板卡种类包括主板卡和从板卡。即上述第一板卡和第二板卡可以均为从板卡,或者,一个为主板卡,另一个为从板卡。[0044] 需要说明的是,上述提及的板卡数量不作具体限定,板卡数量决定存储缓存区中存储区数量。示例性地,图2为本申请实施例中存储缓存区示意图,如图2所示,当存在N个板卡时,每个板卡包括存储缓冲区,且每个板卡中包括所有板卡的存储区。具体的,第一板卡存储缓冲区中包括第一存储区、第二存储区和第N存储区,第二板卡存储缓冲区中包括第一存储区、第二存储区和第N存储区,第N板卡存储缓冲区中包括第一存储区、第二存储区和第N存储区。[0045] 需要说明的是,本申请中第一板卡和第二板卡是同步执行任务的。示例性的,第一板卡和第二板卡是通过硬中断方式同步执行任务的,第一板卡和第二板卡进入中断执行任务的时刻固定且相同。进一步说明,步骤101至步骤102并非限定执行顺序,若第一板卡数据量小于第二板卡数据量,则先执行步骤101再执行步骤102;若第一板卡数据量大于第二板卡数据量,则先执行步骤102再执行步骤101;若第一板卡数据量等于第二板卡数据量,则同时执行步骤101和步骤102。[0046] 这里,步骤101至步骤102的执行主体可以为数据交换设备的处理器。[0047] 采用上述技术方案,第一板卡与第二板卡通过PCIE通道实现板卡间的数据交换;PCIE属于高速串行点对点高带宽传输,带宽远大于传统方式板卡间数据传输时带宽,实现第一板卡与第二板卡间数据高速交换,提高数据传输速率。[0048] 基于上述实施例,本申请实施例提出另一种板卡间数据交换方法,所述板卡还包括第三板卡,所述方法还包括:控制所述第一板卡将所述第二板卡数据通过所述PCIE通道转发至所述第三板卡。也就是说,第一板卡具备数据转发功能,用于将第二板卡的第二板卡数据转发至第三板卡,以实现第二板卡与第三板卡之间的数据交换。[0049] 相应的,所述板卡包括存储缓存区,所述存储缓存区包括第一存储区、第二存储区和第三存储区,所述第一存储区用于存储所述第一板卡数据,第二存储区用于存储所述第二板卡数据,第三存储区用于存储所述第三板卡数据。[0050] 示例性的,以板卡区分主板卡和从板卡为例进行举例说明,第一板卡作为主板卡、第二板卡作为第一从板卡、第三板卡作为第二从板卡,相应的,第一存储区作为主存储区,第二存储区作为第一从存储区,第三存储区作为第二从存储区;第一板卡数据作为主板卡数据,第二板卡数据作为第一从板卡数据,第二从板卡数据作为第二从板卡数据。针对此种示例本申请具体给出一种板卡间数据交换方法。[0051] 这里,该板卡间数据交换方法可应用于电力控制保护设备,该电力控制保护设备包括主板卡、第一从板卡、第二从板卡和背板。在对该板卡间数据交换方法阐述之前,首先对主板卡、第一从板卡、第二从板卡和背板之间的连接关系进行说明,图3为本申请实施例中主板卡、第一从板卡、第二从板卡和背板之间的连接示意图,如图3所示,主板卡PCIE控制器的PCIE0端与第一从板卡PCIE控制器的PCIE0端通过背板相连,主板卡PCIE控制器的PCIE1端与第二从板卡PCIE控制器的PCIE1端通过背板相连。这里,通常设备内所有板卡都有数据交换的可能,但为了减少PCIE控制器使用数量,设计所有从板卡的PCIE控制器与主板卡的PCIE控制器通过背板相连,也就是说,主板卡的PCIE控制器作为RC端(即根节点),从板卡的PCIE控制器作为EP端(即端节点)。[0052] 下面对板卡间数据交换方法进行具体阐述:[0053] 图4为本申请实施例中板卡间数据交换方法的第二流程示意图。如图4所示,该板卡间数据交换方法具体可以包括:[0054] 步骤401:控制所述主板卡将主板卡数据通过PCIE0通道发送至所述第一从板卡。[0055] 步骤402:控制所述主板卡将主板卡数据通过PCIE1通道发送至所述第二从板卡。[0056] 步骤403:控制所述主板卡通过所述PCIE0通道接收所述第一从板卡发送的第一从板卡数据。[0057] 步骤404:控制所述主板卡将所述第一从板卡数据通过所述PCIE1通道发送至所述第二从板卡。[0058] 步骤405:控制所述主板卡通过所述PCIE1通道接收所述第二从板卡发送的第二从板卡数据。[0059] 步骤406:控制所述主板卡将所述第二从板卡数据通过所述PCIE0通道发送至所述第一从板卡。[0060] 需要说明的是,本申请中主板卡和从板卡是同步执行任务的。示例性的,主板卡和从板卡是通过硬中断方式同步执行任务的,主板卡和从板卡进入中断执行任务的时刻固定且相同。进一步说明,步骤401至步骤406并非限定执行顺序,方法执行先后顺序主要与各板卡数据量相关,上面实施例中已具体示例说明,这里就不再具体阐述。[0061] 在一些实施例中,所述主板卡和所述从板卡包括存储缓存区,所述存储缓存区包括主存储区、第一从存储区和第二从存储区,所述主存储区用于存储所述主板卡数据,第一从存储区用于存储所述第一从板卡数据,第二从存储区用于存储所述第二从板卡数据。[0062] 也就是说,通过在主板卡、第一从板卡和第二从板卡分别设置包括主存储区、第一从存储区和第二从存储区的存储缓存区,使得主板卡将在任务周期内执行任务所产生的主板卡数据缓存至主板卡存储区,主板卡将通过PCIE0通道接收到的第一从板卡数据缓存至第一从板卡存储区,主板卡将通过PCIE1通道接收到的第二从板卡数据缓存至第二从板卡存储区;第一从板卡将在任务周期内执行任务所产生的第一从板卡数据缓存至第一从板卡存储区,第一从板卡将通过PCIE0通道接收到的主板卡数据缓存至主板卡存储区,及接收到的第二从板卡数据缓存至第二从板卡存储区;第二从板卡将在任务周期内执行任务所产生的第二从板卡数据缓存至第二从板卡存储区,第二从板卡将通过PCIE1通道接收到的主板卡数据缓存至主板卡存储区,及接收到的第一从板卡数据缓存至第一从板卡存储区;这样实现主板卡、第一从板卡和第二从板卡三者之间的数据交换。[0063] 在一些实施例中,所述方法还包括:根据预先设定的板卡数据传输延时,确定存储缓存区数量。[0064] 针对板卡数据传输延时,需要说明的是,若每个板卡任务执行时间比较短,传输的板卡数据量不大时,通常当前任务周期就可以收到其他板卡发送的板卡数据,则下个任务周期就可以使用这些数据,此时板卡数据传输延时应设定为一个任务周期。若某个板卡任务执行时间长,需要传输的板卡数据量较大,则可能下个任务周期才能接收到该板卡当前任务周期的板卡数据,则需要在下下个任务周期使用其他板卡发送过来的板卡数据,此时板卡数据传输延时应设定为两个任务周期。板卡数据传输延时的设定,依据上述示例以此类推不再进行具体阐述。因此,为适应上述情况需要设置M个存储缓存区,用于存放多个任务周期的板卡数据。[0065] 进一步需要说明的是,存储缓存区数量可以与任务周期数量对等也可以不对等。两者对等时,将不同任务周期产生的板卡数据分别存储至不同存储缓存区中;两者不对等时,将不同任务周期产生的板卡数据循环存储至有限的存储缓存区中。[0066] 针对设置有限存储缓存区情况,在一些实施例中,若所述板卡数据传输延时为M个任务周期,则所述存储缓存区数据量为M+1;其中,M为大于等于1的整数。[0067] 示例性的,当板卡数据传输延时为一个任务周期时,当前任务周期所产生的板卡数据可在下一个任务周期中使用,则最少需要设置2个存储缓存区;当板卡数据传输交换延时为两个任务周期时,当前任务周期所产生的板卡数据可在下下一个任务周期中使用,则最少需要设置3个存储缓存区。[0068] 示例性的,本申请设置3个存储缓存区,第一存储缓存区中包括主存储区、第一从存储区和第二从存储区,第二存储缓存区中包括主存储区、第一从存储区和第二从存储区,第三存储缓存区中包括主存储区、第一从存储区和第二从存储区。[0069] 示例性的,在一些实施例中,存储缓存区为3时,第一存储缓存区用于存储所述主板卡和所述从板卡在第(3N‑2)个任务周期产生的板卡数据;N为大于等于1的整数;第二存储缓存区用于存储所述主板卡和所述从板卡在第(3N‑1)个任务周期产生的板卡数据;第三存储缓存区用于存储所述主板卡和所述从板卡在第3N个任务周期产生的板卡数据。[0070] 具体的,第一个任务周期,主板卡数据存储至第一存储缓存区的主存储区,第一从板卡数据存储至第一存储缓存区的第一从板卡区,第二从板卡数据存储至第一存储缓存区的第二从板卡区;第二个任务周期,主板卡数据存储至第二存储缓存区的主存储区,第一从板卡数据存储至第二存储缓存区的第一从板卡区,第二从板卡数据存储至第二存储缓存区的第二从板卡区;第三个任务周期,主板卡数据存储至第三存储缓存区的主存储区,第一从板卡数据存储至第三存储缓存区的第一从板卡区,第二从板卡数据存储至第三存储缓存区的第二从板卡区;第四个任务周期,主板卡数据存储至第一存储缓存区的主存储区,第一从板卡数据存储至第一存储缓存区的第一从板卡区,第二从板卡数据存储至第一存储缓存区的第二从板卡区;以此类推。[0071] 在一些实施例中,所述主板卡和所述从板卡包括多个存储缓存区时,所述方法还包括:根据预先设定的板卡数据传输延时,从多个存储缓存区去确定满足所述数据传输延时的目标存储缓存区;从所述目标存储缓存区内提取全部存储区的数据进行处理。[0072] 示例性的,板卡数据传输延时为一个任务周期时,各板卡从上个任务周期对应的存储缓存区内提取全部存储区的数据,以供各板卡执行下一个任务周期时使用。板卡数据传输延时为两个任务周期时,各板卡从上上个任务周期对应的存储缓存区内提取全部存储区的数据,以供各板卡执行下一个任务周期时使用。其中,存储缓存区内板卡数据中包括任务周期起始时间,故可根据任务周期起始时间,从多个存储缓存区查找到目标存储缓存区,进而从目标存储缓存区内提取全部存储区的数据进行处理。[0073] 这里,通过板卡数据包括的任务周期起始时间,各板卡可以严格控制数据同步延时,确保各板卡使用的数据均为同一时间断面,保证数据交换的安全性。[0074] 采用上述技术方案,第一从板卡将第一从板卡数据发送至主板卡,主板卡将第一从板卡数据转发至第二从板卡;第二从板卡将第二从板卡数据发送至主板卡,主板卡将第二从板卡数据转发至第一从板卡;即实现从板卡间数据交换。[0075] 基于上述实施例,本申请具体给出一种通过直接存储器访问(DirectMemoryAccess,DMA)方式实现板卡间数据交换方法,图5为本申请实施例中板卡间数据交换方法的第三流程示意图。本申请实施例仍以板卡包括主板卡、第一从板卡和第二从板卡进行说明。其中,主板卡和从板卡包括存储缓存区,存储缓存区包括主存储区、第一从存储区和第二从存储区,主存储区用于存储主板卡数据,第一从存储区用于存储第一从板卡数据,第二从存储区用于存储第二从板卡数据。[0076] 这里,利用DMA方式传送数据时,数据直接在源地址与目的地址之间传送,不需要中间媒介。因此,实现板卡间数据交换时,对DMA控制器配置有板卡数据的源地址和目的地址。[0077] 如图5所示,该板卡间数据交换方法具体可以包括:[0078] 步骤501:控制所述主板卡上DMA控制器,将所述主板卡数据通过所述PCIE通道发送至所述从板卡。[0079] 具体的,主板卡在任务周期执行完任务后,产生最新待交换的数据组帧(即主板卡数据),启动主板卡的DMA控制器,DMA控制器配置源地址为主板卡的主存储区,目的地址为第一从板卡的主存储区,故控制DMA控制器通过PCIE通道将主板卡数据从主板卡的主存储区发送至第一从板卡的主存储区。DMA控制器还配置源地址为主板卡的主存储区,目的地址为第二从板卡的主存储区,故控制DMA控制器通过PCIE通道将主板卡数据从主板卡的主存储区发送至第二从板卡的主存储区。[0080] 步骤502:控制所述主板卡接收所述从板卡上DMA控制器通过所述PCIE通道发送的从板卡数据。[0081] 具体的,第一从板卡在任务周期执行完任务后,产生最新待交换的数据组帧(即第一从板卡数据),启动第一从板卡的DMA控制器,DMA控制器配置源地址为第一板卡的第一从存储区,目的地址为主板卡的第一从存储区,故控制DMA控制器通过PCIE通道将第一从板卡数据从第一从板卡的第一从存储区发送至主板卡的第一从存储区。[0082] 第二从板卡在任务周期执行完任务后,产生最新待交换的数据组帧(即第二从板卡数据),启动第二从板卡的DMA控制器,DMA控制器配置源地址为第二板卡的第二从存储区,目的地址为主板卡的第二从存储区,故控制DMA控制器通过PCIE通道将第二从板卡数据从第二从板卡的第二从存储区发送至主板卡的第二从存储区。[0083] 步骤503:控制所述主板卡上DMA控制器,将所述第一从板卡数据通过所述PCIE通道转发至所述第二从板卡。[0084] 具体的,启动主板卡的DMA控制器,DMA控制器配置源地址为主板卡的第一从存储区,目的地址为第二从板卡的第一从存储区,故控制DMA控制器基于PCIE协议将主板卡数据从主板卡的第一从存储区发送至第二从板卡的第一从存储区。[0085] 在一些实施例中,控制所述主板卡上DMA控制器,将所述第二从板卡数据通过所述PCIE通道转发至所述第一从板卡。[0086] 具体的,启动主板卡的DMA控制器,DMA控制器配置源地址为主板卡的第二从存储区,目的地址为第一从板卡的第二从存储区,故控制DMA控制器基于PCIE协议将主板卡数据从主板卡的第二从存储区发送至第一从板卡的第二从存储区。[0087] 在一些实施例中,所述主板卡的通用输入/输出口(GeneralPurposeInput/Output,GPIO)与所述从板卡的GPIO相连建立GPIO通道;所述方法还包括:所述主板卡接收到所述第一从板卡通过所述GPIO通道发送的控制信号时,触发所述主板卡进入中断,以控制所述主板卡将第一从板卡数据通过所述PCIE通道转发至所述第二从板卡;其中,所述控制信号用于表征所述第一从板卡数据发送完成。[0088] 如图3所示,主板卡的GPIO0与第一从板卡的GPIO0通过背板相连,主板卡的GPIO1与第二从板卡的GPIO1通过背板相连。[0089] 本实施例也就是说,主板卡在接收到第一从板卡发送的第一从板卡数据时,会立即将第一从板卡数据转发至第二从板卡,提高数据传输及时性。[0090] 具体的,第一从板卡的DMA控制器配置有板卡数据发送完成中断,当第一从板卡将第一从板卡数据发送完成时,产生发送完成中断,在中断内触发GPIO0,使得GPIO0产生控制信号,主板卡接收到控制信号时触发主板卡进入中断,在中断处理函数内将第一从板卡发送的第一从板卡数据通过PCIE通道转发至第二从板卡。其中,GPIO0产生控制信号时,GPIO0电平翻转,故主板卡检测到GPIO0电平变化后,主板卡进入中断。[0091] 采用上述技术方案,各板卡间通过DMA方式传输板卡数据,利用DMA方式传送数据时,数据直接在源地址与目的地址之间传送,提高处理器效率。同时,各板卡通过PCIE通道发送板卡数据时,会直接将板卡数据发到其他板卡的存储缓存区该板卡数据存储区,各板卡无需重新维护存储缓存区,提高板卡数据处理效率。[0092] 基于上述实施例,本申请给出一种主板卡存储缓存区数据接收流程示意图,图6为本申请实施例中主板卡存储缓存区数据接收流程示意图。[0093] 如图6所示,具体包括:[0094] 步骤601:主板卡执行任务,产生主板卡数据,并存储至主存储区。[0095] 步骤602:第一从板卡执行任务,产生第一从板卡数据,启动DMA控制器基于PCIE协议将第一从板卡数据发送至主板卡的第一从存储区。[0096] 步骤603:第二从板卡执行任务,产生第二从板卡数据,启动DMA控制器基于PCIE协议将第二从板卡数据发送至主板卡的第二从存储区。[0097] 基于上述实施例,本申请给出一种第一从板卡存储缓存区数据接收流程示意图,图7为本申请实施例中第一从板卡存储缓存区数据接收流程示意图。[0098] 如图7所示,具体包括:[0099] 步骤701:主板卡执行任务,产生主板卡数据,启动DMA控制器基于PCIE协议将主板卡数据发送至第一从板卡的主存储区。[0100] 步骤702:第一从板卡执行任务,产生第一从板卡数据,并存储至第一从存储区。[0101] 步骤703:第二从板卡执行任务,产生第二从板卡数据,启动DMA控制器基于PCIE协议将第二从板卡数据发送至主板卡,主板卡启动DMA控制器基于PCIE协议将第一从板卡数据发送至第一从板卡的第二从存储区。[0102] 需要说明的是,第二从板卡存储缓存区数据接收流程图与第一从板卡存储缓存区数据接收流程图相类似,参考图7即可,这里就不再阐述。[0103] 为实现本申请实施例的方法,基于同一发明构思,本申请实施例中还提供了一种板卡间数据交换装置,图8为本申请实施例中板卡间数据交换装置组成的结构示意图,如图8所示,所述板卡包括主板卡和从板卡,所述主板卡的PCIE控制器和所述从板卡的PCIE控制器相连建立PCIE通道;该板卡间数据交换装置包括:[0104] 控制单元801,用于控制所述第一板卡将第一板卡数据通过所述PCIE通道发送至所述第二板卡;[0105] 所述控制单元801,用于控制所述第一板卡通过所述PCIE通道接收所述第二板卡发送的第二板卡数据。[0106] 采用上述技术方案,主板卡与从板卡通过PCIE通道实现板卡间的数据交换;PCIE属于高速串行点对点高带宽传输,带宽远大于传统方式板卡间数据传输时带宽,实现主板卡与从板卡间数据高速交换,提高数据传输速率。[0107] 在一些实施例中,所述板卡还包括第三板卡,控制所述第一板卡将所述第二板卡数据通过所述PCIE通道转发至所述第三板卡。[0108] 在一些实施例中,控制所述第一板卡上直接存储器访问DMA控制器,将所述第一板卡数据通过所述PCIE通道发送至所述第二板卡;控制所述第一板卡接收所述第二板卡上DMA控制器通过所述PCIE通道发送的所述第二板卡数据;控制所述第一板卡上DMA控制器,将所述第二板卡数据通过所述PCIE通道转发至所述第三板卡。[0109] 在一些实施例中,所述板卡包括存储缓存区,所述存储缓存区包括第一存储区、第二存储区和第三存储区,所述第一存储区用于存储所述第一板卡数据,第二存储区用于存储所述第二板卡数据,第三存储区用于存储第三板卡数据。[0110] 在一些实施例中,根据预先设定的板卡数据传输延时,确定存储缓存区数量。[0111] 在一些实施例中,若所述板卡数据传输延时为M个任务周期,则所述存储缓存区数据量为M+1;其中,M为大于等于1的整数。[0112] 在一些实施例中,所述板卡包括多个存储缓存区时,根据预先设定的板卡数据传输延时,从多个存储缓存区去确定满足所述数据传输延时的目标存储缓存区;从所述目标存储缓存区内提取全部存储区的数据进行处理。[0113] 在一些实施例中,所述第一板卡的通用输入/输出口GPIO与所述第二板卡的GPIO相连建立GPIO通道;所述方法还包括:所述第一板卡接收到所述第二板卡通过所述GPIO通道发送的控制信号时,触发所述第一板卡进入中断,以控制所述第一板卡将所述第二板卡数据通过所述PCIE通道转发至所述第三板卡;其中,所述控制信号用于表征所述第二板卡数据发送完成。[0114] 本申请实施例还提供了另一种数据交换设备,图9为本申请实施例中数据交换设备组成的结构示意图,如图9所示,该数据交换设备包括:处理器901和配置为存储能够在处理器上运行的计算机程序的存储器902;[0115] 其中,处理器901配置为运行计算机程序时,执行前述实施例中的方法步骤。[0116] 当然,实际应用时,如图9所示,该数据交换设备中的各个组件通过总线系统503耦合在一起。可理解,总线系统903用于实现这些组件之间的连接通信。总线系统903除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统903。[0117] 在实际应用中,上述处理器可以为特定用途集成电路(ASIC,ApplicationSpecificIntegratedCircuit)、数字信号处理装置(DSPD,DigitalSignalProcessingDevice)、可编程逻辑装置(PLD,ProgrammableLogicDevice)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本申请实施例不作具体限定。[0118] 上述存储器可以是易失性存储器(volatilememory),例如随机存取存储器(RAM,Random‑AccessMemory);或者非易失性存储器(non‑volatilememory),例如只读存储器(ROM,Read‑OnlyMemory),快闪存储器(flashmemory),硬盘(HDD,HardDiskDrive)或固态硬盘(SSD,Solid‑StateDrive);或者上述种类的存储器的组合,并向处理器提供指令和数据。[0119] 在示例性实施例中,本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。[0120] 可选的,该计算机可读存储介质可应用于本申请实施例中的任意一种方法,并且该计算机程序使得计算机执行本申请实施例的各个方法中由处理器实现的相应流程,为了简洁,在此不再赘述。[0121] 在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。[0122] 上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。[0123] 另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read‑OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。[0124] 本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。[0125] 本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。[0126] 本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。[0127] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

专利地区:江苏

专利申请日期:2021-09-13

专利公开日期:2024-06-18

专利公告号:CN113836058B

电话咨询
读内容
搜本页
回顶部