一种基于CPLD的加速卡、数据采集方法及装置与流程

文档序号:16667229发布日期:2019-01-18 23:20阅读:302来源:国知局
一种基于CPLD的加速卡、数据采集方法及装置与流程

本发明涉及加速卡信息采集技术领域,更具体地说,涉及一种基于cpld的加速卡、加速卡数据采集方法及装置。



背景技术:

随着人工智能技术和高性能计算的快速发展以及大数据的爆发式增长,传统处理器芯片在提升性能功耗比方面遇到了极大挑战。为了达到更快的运算速度、降低功耗,基于fpga(fieldprogrammablegatearray,现场可编程与门阵列)的加速卡应运而生,fpga以其高性能、高密度、低延时以及硬件可编程等特点,逐渐占领加速卡的市场。而加速卡通常以pcie接口与服务器相连,作为服务器的一个子系统自然要在bmc(baseboardmanagementcontroller,基板管理控制器)的监控管理之下,监测fpga的工作温度、板卡功耗、ddr(doubledatarate,双倍速率)内存等信息,控制风扇速度保证板卡散热效果等,所以加速卡必须具备要支持远程监控功能的特性。

目前加速卡的监控管理方式是由fpga直接负责采集相关传感器信息,然后以固定通信方式反馈给服务器的bmc芯片,或者使用arm、dsp等作为协处理器负责相关信息的采集和处理。但是,这种使用fpga的解决方案无疑会增加fpga的工作量,对于用来提高计算速度的fpga芯片,其主要功能是处理与cpu之间数据交互、完成算法的运算,从而提高cpu的计算速度。如果加入与加速功能不相关的传感器数据采集及传递功能,会浪费fpga的宝贵资源,影响fpga时序的收敛,且不利于升级和维护。对于使用其他处理器的方式,需要开发者对另一种芯片或者另一种语言的技术应用,需要增加开发人员。



技术实现要素:

本发明的目的在于提供一种基于cpld的加速卡、加速卡数据采集方法及装置,以实现获取加速卡的数据的基础上,不影响加速卡的加速功能。

为实现上述目的,本发明实施例提供了如下技术方案:

一种基于cpld的加速卡,包括:

设置在所述加速卡上的cpld芯片;

所述cpld芯片一端与主机端的bmc芯片相连,另一端与所述加速卡上的各数据采集设备相连,用于将各数据采集设备的数据发送至所述bmc芯片。

其中,所述cpld芯片通过pciesmbus与主机端的bmc芯片进行通信;所述cpld芯片通过i2c总线与所述加速卡上的各数据采集设备通信。

一种加速卡数据采集方法,包括:

cpld芯片接收主机端的bmc芯片发送的数据获取指令;其中,所述cpld芯片设置在加速卡上;

所述cpld芯片根据所述数据获取指令,从所述加速卡上的数据采集设备中获取数据,并发送至所述bmc芯片。

其中,所述cpld芯片接收主机端的bmc芯片发送的数据获取指令,包括:所述cpld芯片通过pciesmbus接收主机端的bmc芯片发送的数据获取指令。

其中,所述cpld芯片将数据发送至所述bmc芯片,包括:所述cpld芯片通过pciesmbus将数据发送至所述bmc芯片。

其中,所述cpld芯片根据所述数据获取指令,从所述加速卡上的数据采集设备中获取数据,包括:

所述cpld芯片根据所述数据获取指令,通过i2c总线从所述加速卡上的数据采集设备中获取数据。

其中,所述cpld芯片根据所述数据获取指令,从所述加速卡上的数据采集设备中获取数据,包括:

所述cpld芯片判断所述数据获取指令是否是对专用设备的访问指令;

若否,则解析所述数据获取指令,根据解析后的数据获取指令从对应的通用设备中获取数据;

若是,则从所述cpld芯片的寄存器中直接获取专用设备的数据;其中,所述cpld芯片以预定时长为周期自动轮询各个专用设备,并将轮询后的数据存储在所述寄存器中。

其中,若所述数据获取指令为对通用设备的访问指令,则所述数据获取指令中包括:设备id信息、地址信息和读写操作信息;

若所述数据获取指令为对专用设备的访问指令,则所述数据获取指令中包括:所述主机端与所述cpld芯片预先统一设定的专用设备标识信息。

一种加速卡数据采集装置,基于设置在加速卡的cpld芯片,所述装置包括:

指令接收模块,用于接收主机端的bmc芯片发送的数据获取指令;

数据获取模块,用于根据所述数据获取指令,从所述加速卡上的数据采集设备中获取数据;

数据发送模块,用于将所述数据发送至所述bmc芯片。

通过以上方案可知,本发明实施例提供的一种基于cpld的加速卡,包括:设置在所述加速卡上的cpld芯片;所述cpld芯片一端与主机端的bmc芯片相连,另一端与所述加速卡上的各数据采集设备相连,用于将各数据采集设备的数据发送至所述bmc芯片。

可见,在本方案中,通过设置在加速卡的cpld芯片来采集各数据采集设备的数据的方式,可在采集数据的基础上,不影响加速卡的加速功能,方便升级和维护;进而,cpld芯片体积小、应用电路简单、功耗小,因此,将cpld芯片设置在加速卡上,无论对板卡尺寸、开发难度以及功耗都不会对加速卡产生较大的影响;本发明还公开了一种加速卡数据采集方法及装置,同样能实现上述技术效果。

附图说明

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

图1为本发明实施例公开的一种fpga加速卡数据采集系统结构示意图;

图2为本发明实施例公开的一种加速卡数据采集方法流程示意图;

图3为本发明实施例公开的cpld工作原理示意图;

图4为本发明实施例公开的一种加速卡数据采集装置结构示意图。

具体实施方式

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

本发明实施例公开了一种基于cpld的加速卡、加速卡数据采集方法及装置,以实现获取加速卡的数据的基础上,不影响加速卡的加速功能。

可以理解的是,本方案所述的使用cpld实现监控管理的方法,具有很好的通用性和可移植性,可应用在任意一款加速卡上,且不局限于基于fpga的加速卡。在本实施例中,以加速卡为fpga加速卡为了进行描述。

参见图1,本发明实施例提供的一种fpga加速卡数据采集系统结构示意图,图1中的100即为本申请中的基于cpld的加速卡,该加速卡包括:

设置在所述加速卡上的cpld芯片110;

所述cpld芯片一端与主机端的bmc芯片相连,另一端与所述加速卡上的各数据采集设备相连,用于将各数据采集设备的数据发送至所述bmc芯片。

具体的,cpld(complexprogrammablelogicdevice,复杂可编程逻辑器件)芯片也是一种可编程逻辑器件,其优点是芯片体积小、应用电路简单(单一供电且不需要外部程序加载芯片)以及功耗小,开发环境可编程语言与fpga完全一致;缺点是没有fpga那么丰富的逻辑资源及ip资源,但是对于加速卡上传感器数据采集及处理应用来说,资源足够用。使用cpld来进行相关工作,与fpga加速功能互不影响,方便升级和维护,且该芯片的加入,无论对板卡尺寸、开发难度以及功耗都不会对加速卡产生较大的影响。

其中,cpld芯片通过pciesmbus与主机端的bmc芯片进行通信;cpld芯片通过i2c总线与所述加速卡上的各数据采集设备通信。

具体的,通过图1所示的系统结构示意图可以看出,本方案中在原有的fpga加速卡上加入一片cpld芯片,cpld芯片通过pciesmbus与主机端的bmc芯片通信,作为主机bmc的一个slave;而cpld芯片与fpga以及其他数据采集设备之间也只通过i2c总线通信,此时cpld作为master,控制各device。需要说明的是,本方案中的数据采集设备包括fpga加速卡上的fpga,以及其他数据采集设备,其他数据采集设备为fpga加速卡上相关数据采集芯片或者模块,具体包括采集内存信息的设备、采集功耗的设备、采集eeprom(带电可擦可编程只读存储器)值的设备、采集温度的设备等,在此并不具体限定。

进一步的,本方案中cpld芯片基于i2c接口与众多数据采集设备相连,所有设备的总线连接在一起,master访问不同设备时通过设备地址来区分,i2c协议中对符合该协议的设备定义了不同的标识码,而同类型的设备通过3bit或2bit地址译码来区分,所以对于加速卡来说不会出现访问设备地址相同的情况,只要主机端、cpld芯片的master以及各device之间协商好地址分配即可。基于上述加速卡的实现结构,监控管理系统的工作流程如下:主机bmc发起命令,cpld接收并解析来自主机端的命令,然后根据接收的命令访问板卡上对应的设备,最后将结果返回给主机端。

综上可以看出,本方案提供的这种基于cpld的支持远程监控的加速卡实现方式,该方式在不增加加速卡尺寸和功耗的情况下,使用简单有效的方式配合主机bmc实现监控管理,当板卡升级或者监控设备升级时,cpld在几乎不用改动或者较少代码改动的情况下,完成升级工作,所以具有一定的可移植性、通用性以及易用性。

下面对本发明实施例提供的数据采集方法进行介绍,下文描述的数据采集方法与上文描述的加速卡可以相互参照。

参见图2,本发明实施例提供的一种加速卡数据采集方法,包括:

s101、cpld芯片接收主机端的bmc芯片发送的数据获取指令;其中,所述cpld芯片设置在加速卡上;

s102、所述cpld芯片根据所述数据获取指令,从所述加速卡上的数据采集设备中获取数据,并发送至所述bmc芯片。

其中,所述cpld芯片接收主机端的bmc芯片发送的数据获取指令,包括:所述cpld芯片通过pciesmbus接收主机端的bmc芯片发送的数据获取指令;其中,所述cpld芯片将数据发送至所述bmc芯片,包括:所述cpld芯片通过pciesmbus将数据发送至所述bmc芯片。

其中,所述cpld芯片根据所述数据获取指令,从所述加速卡上的数据采集设备中获取数据,包括:

所述cpld芯片根据所述数据获取指令,通过i2c总线从所述加速卡上的数据采集设备中获取数据

具体的,本方案中的cpld芯片通过pciesmbus与主机端的bmc芯片进行通信;cpld芯片通过i2c总线与加速卡上的各数据采集设备通信,因此cpld芯片在接收数据和发送数据时,均需要通过pciesmbus发送,在从设备获取数据时是通过i2c总线获取的。

可以看出,本方案通过设置在加速卡的cpld芯片来采集各数据采集设备的数据的方式,可在采集数据的基础上,不影响加速卡的加速功能,方便升级和维护;进而,cpld芯片芯片体积小、应用电路简单、功耗小,且开发环境可编程语言与fpga完全一致,因此,将cpld芯片设置在加速卡上,无论对板卡尺寸、开发难度以及功耗都不会对加速卡产生较大的影响。

基于上述任意方法实施例,在本实施例中,所述cpld芯片根据所述数据获取指令,从所述加速卡上的数据采集设备中获取数据,包括:

所述cpld芯片判断所述数据获取指令是否是对专用设备的访问指令;

若否,则解析所述数据获取指令,根据解析后的数据获取指令,从对应的通用设备中获取数据;

若是,则从所述cpld芯片的寄存器中直接获取专用设备的数据;所述cpld芯片以预定时长为周期自动轮询各个专用设备,并将轮询后的数据存储在所述寄存器中;

其中,若所述数据获取指令为对通用设备的访问指令,则所述数据获取指令中包括:设备id信息、地址信息和读写操作信息;

若所述数据获取指令为对专用设备的访问指令,则所述数据获取指令中包括:所述主机端与所述cpld芯片预先统一设定的专用设备标识信息。

具体的,本方案中的cpld芯片作为主机端访问fpga板卡上的各个设备的联络站,为了节省cpld资源,同时又提升主机端读写速度,在本实施例中采用通用访问与专用访问并存的方式。对于访问较少的device,采用通用访问方式,主机端四条命令完成读写,这四条命令包括:设备id、地址信息(高位地址和地位地址)、读写操作信息;对于需要频繁读取的device,采用专用访问,主机端通过一条命令完成读取,这一条命令中包括主机端与cpld芯片预先统一设定的专用设备标识信息,例如:a,b,c等;cpld工作原理如图3所示。

因此,cpld芯片接收到主机端发送的数据获取指令后,需要判断该数据获取指令是否是对专用设备的访问指令,若是,则执行专用设备访问流程,如果不是,则执行通用设备访问流程,需要说明的是,通用设备访问流程也可以获取专用设备的数据,只要指令的形式是通用设备形式的指令便可以,具体两种访问流程如下所示:

专用设备访问流程:cpld以预定时长为周期自动轮询访问各个专用设备,并将轮询后的数据存储在寄存器中,因此接收到主机端发送的一条携带专用设备标识的信息后,根据主机端与cpld芯片预先统一设定的专用设备标识与专用设备之间的对应关系,确定与专用设备标识对应的专用设备,并从寄存器中直接获取专用设备的数据,并反馈给主机端。对于实时性要求较高并且访问频繁的设备可采用此方式,比如:fpga温度采集、功耗信息以及风扇转速信息等。

通用设备访问流程:主机端bmc可以任意访问加速卡上的device,只要按照协议规定,发送设备id、地址信息、读写操作信息即可;cpld芯片接收到数据获取指令后,需要判断当前专用访问的自动轮训访问是否结束,若结束了,则cpld将上述命令下发给device即可,从而获取通用设备的数据;如果没有结束,则需要等待当前专用访问的自动轮训访问结束后,再将上述命令下发给device即可,从而获取通用设备的数据。对于对实时性要求不高且不需要频繁控制的设备可采用此方式,比如eeprom信息、ddr内存信息等。

可以看出,本方案采用两种访问方式并存的形式,配合pcie驱动端的测试程序或者bmc监控程序,能方便快速的得到需要的数据,提高了实时性,对于测试阶段,极大的简化了测试步骤,提高测试效率。

下面对本发明实施例提供的数据采集装置进行介绍,下文描述的数据采集装置与上文描述的数据采集方法可以相互参照。

参见图4,本发明实施例提供的一种加速卡数据采集装置,基于设置在加速卡的cpld芯片,所述装置包括:

指令接收模块100,用于接收主机端的bmc芯片发送的数据获取指令;

数据获取模块200,用于根据所述数据获取指令,从所述加速卡上的数据采集设备中获取数据;

数据发送模块300,用于将所述数据发送至所述bmc芯片。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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