一种通用性强的智能网卡BMC通信结构及方法与流程

文档序号:27261920发布日期:2021-11-05 22:19阅读:778来源:国知局
一种通用性强的智能网卡BMC通信结构及方法与流程
一种通用性强的智能网卡bmc通信结构及方法
技术领域
1.本技术涉及智能网卡领域,尤其涉及一种通用性强的智能网卡bmc通信结构及方法。


背景技术:

2.智能网卡的核心是通过fpga协助服务器cpu处理网络负载,编程网络接口功能。智能网卡通过fpga本地化编程支持数据面和控制面功能定制,协助cpu处理网络负载;利用包含多个端口和内部交换机,快速转发数据并基于网络数据包、应用程序套接字等智能映射到到相关应用程序。智能网卡在服务器的应用,替代cpu进行相关网络处理极大解放服务器cpu的性能。
3.智能网卡应用在服务器时,如何更好的监控、管理智能网卡的工作状态,及时识别风险、排除故障对服务器正常运行十分必要。因此,智能网卡如图1所示现有的智能网卡配置网卡bmc,网卡bmc利用i2c总线经pcie金手指与服务器主板上的服务器bmc连接,将网卡bmc配置为从设备,服务器bmc配置为主设备;服务器bmc可以访问网卡bmc上的少量状态信息获知网卡部分状态或者下发控制指令给网卡bmc控制智能网卡的开关电。另外,网卡bmc还通过usb总线和uart总线经额外的连接器与服务器bmc连接,服务器bmc可以通过usb总线和uart总线向网卡bmc传递固件以实现智能网卡固件更新,服务器bmc通过usb总线和uart总线从网卡bmc获取智能网卡上的温度、电压以及其他状态;服务器bmc可以通过usb总线和uart总线访问智能网卡soc上的系统log。除上述情况,有的智能网卡与主板之间还需要建立ncsi总线连接。可以说现有智能网卡为了实现与主板的充分互通,需要设计很多额外的接口,增加了智能网卡的设计复杂程度,使得智能网卡的体积变大,设计成本增加;复杂的接口设计使得智能网卡跨平台的通用性较差,额外接口需要服务器bmc必须配置与之相匹配的通信通路和对应的接口,一旦服务器bmc没有对应的接口,则无法适配该智能网卡。而且由于要实现智能网卡的网卡bmc与服务器bmc之间的通信,往往需要智能网卡的bmc与服务器bmc采用相同厂商的bmc,保证bmc互联代码能够兼容,限制了硬件供应来源,容易造成生产成本增加;现有的智能网卡的网卡bmc只能通过其所在服务器bmc点对点的访问,网卡的可测试性差。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本技术提供的通用性强的智能网卡bmc通信结构及方法。
5.一方面本技术提供一种通用性强的智能网卡bmc通信结构,通用性强的智能网卡bmc通信结构包括:通信单元,所述通信单元包括第一接口控制模块,所述第一接口控制模块通过总线连接智能网卡的网卡bmc;所述第一接口控制模块连接第一fifo缓存和第二fifo缓存;
6.所述第一fifo缓存连接以太网组帧模块,所述以太网组帧模块连接第二接口控制
模块,所述第二接口控制模块通过网络端口连接本地服务器或其他终端;
7.所述第二接口控制模块连接以太网解帧模块,所述以太网解帧模块连接第二fifo缓存;
8.所述第一接口控制模块将从所述网卡bmc收到的上行数据缓存至所述第一fifo缓存,所述以太网组帧模块按顺序从所述第一fifo缓存获取上行数据并封装成以太帧,通过所述第二接口控制模块将以太帧发送给本地服务器或其他终端;所述第二接口控制模块将从本地服务器或其他终端获取的以太帧发送给所述以太网解帧模块解析成下行数据,所述以太网解帧模块将下行数据发送给第二fifo缓存存储,所述第一接口模块按顺序从所述第二fifo缓存获取数据发送给所述网卡bmc。
9.更进一步地,所述通用性强的智能网卡bmc通信结构的所述网卡bmc还通过i2c总线经pcie金手指边带与服务器bmc连接,所述服务器bmc配置为i2c的主设备,所述网卡bmc配置为i2c从设备。
10.更进一步地,所述网卡bmc连接所述第一接口控制模块的总线为高速总线。
11.更进一步地,所述通信单元还配置控制时钟模块、流控制状态机、状态寄存器以及命令表和地址表,所述时钟模块用于为所述通信单元的数据转换过程提供时钟信号,所述流控制状态机用于控制数据转换过程中数据流的传输,所述状态寄存器用于记录所述通信单元在数据转换过程中的通信单元状态,所述命令表用于设定命令顺序,所述通信单元在生成或解析以太帧过程中的命令与命令表匹配,按命令表设定的命令顺序执行相应命令完成生成或解析以太帧;所述地址表用于学习记录网卡bmc通信过程中所连接的本地服务器或其他终端地址,将地址与网卡bmc地址映射,再次连接时按照所述地址表中的地址映射连接。
12.更进一步地,所述网络端口采用sfp光模块,所述网络端口经交换机连接本地服务器lan接口连接,本地服务器lan接口连接本地服务器南桥,本地服务器南桥连接服务器bmc。
13.更进一步地,网络端口经交换机连接其他终端,其他终端用于与智能网卡的网卡bmc进行通信以监测、维护、测试智能网卡。
14.更进一步地,所述网络端口直接连接本地服务器lan接口,本地服务器lan接口连接本地服务器南桥,本地服务器南桥连接服务器bmc。
15.另一方面本技术还提供一种通用性强的智能网卡bmc通信方法,包括:本地服务器或其他终端发送携带命令或数据的以太帧;
16.第二接口控制模块接收以太帧并发送给以太网解帧模块;
17.所述以太网解帧模块解析以太帧获取命令或数据,并将命令或数据存储在第二fifo缓存;
18.第一接口控制模块按顺序从所述第二fifo缓存获取命令或数据发送给网卡bmc;
19.所述网卡bmc执行命令或接收数据后,所述网卡bmc发送反馈信息;
20.所述第一接口控制模块接收反馈信息并将反馈信息发送到第一fifo缓存存储;
21.以太网组帧模块从所述第一fifo缓存获取反馈信息并封装成以太帧;
22.所述第二接口控制模块获取所述以太网组帧模块生成的以太帧发送给本地服务器或其他终端。
23.更进一步地,网卡bmc响应于本地服务器的服务器bmc的i2c读请求反馈相应的数据给本地服务器的服务器bmc。
24.更进一步地,网卡bmc响应于本地服务器的服务器bmc的i2c写请求从本地服务器bmc获取相应的数据。
25.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
26.本技术提供的通用性强的智能网卡bmc通信结构通过通信单元整合处理网卡bmc的带外信息,通过以太帧的形式使网卡bmc与本地服务器或者与其他终端通信,从而将网卡bmc通信的多种总线整合成一种,降低智能网卡的复杂性。
27.由于服务器均设置lan口,通信单元能通过lan口连接服务器,使得智能网卡能够适配任何服务器,增加智能网卡的适配性。
28.网卡bmc和服务器bmc之间通过通信单元连接,互通的数据经通信单元转换为标准的以太帧,这就使得网卡bmc和服务器bmc不必采用同一厂商的bmc产品即可实现通信的兼容。可以多样化产品供应链以降低成本。
29.网卡bmc通过通信单元连接交换机,交换机连接本地服务器或其他终端,使得本地服务器、本地服务器的服务器bmc和其他终端均能够网络连接网卡bmc,使得智能网卡的可维护性、可测试性以及可监测性更强。
附图说明
30.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
32.图1为现有的智能网卡与服务器主板上bmc连接示意图;
33.图2为本实施例提供的通用性强的智能网卡bmc通信结构与本地服务器或其他终端连接示意图;
34.图3为本实施例提供的集成通信单元的智能网卡fpga架构示意图;
35.图4为本实施例提供的通用性强的智能网卡bmc通信方法中实现高速通信的流程图。
具体实施方式
36.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
37.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所
述要素的过程、方法、物品或者设备中还存在另外的相同要素。
38.智能网卡的核心是通过fpga(现场可编程门阵列)协助服务器cpu处理网络负载,编程网络接口功能。一般智能网卡具有以下功能:
39.通过智能网卡的fpga本地化编程支持数据面和控制面功能定制,协助服务器cpu处理网络负载。
40.利用智能网卡的多个网络端口和内部的交换机,快速转发网络数据并基于网络数据包、应用程序套接字等智能映射到到相关应用程序。
41.智能网卡能够提升应用程序和虚拟化性能,实现软件定义网络(sdn)和网络功能虚拟化(nfv)。使用智能网卡将网络虚拟化、负载均衡和其他低级功能从服务器cpu中移除,确保服务器cpu为应用提供最大的处理能力,解放了服务器cpu处理能力。
42.智能网卡还能检测和管理服务器的网络流量。智能网卡还能够提供分布式计算资源,通过智能网卡为用户自己开发的软件提供分布式计算资源的接入服务。
43.现有的智能网卡结构参阅图1所示,网卡bmc一方面通过pcie金手指的边带实现i2c总线连接服务器bmc,网卡bmc为i2c的从设备,服务器bmc为i2c的主设备,服务器bmc通过i2c总线与网卡bmc进行通信主要用于获取网卡bmc少量的状态信息和向网卡bmc发送控制开关电等控制指令;网卡bmc另一方面通过usb&urat总线配合另外的连接器来连接服务器bmc。实现网卡bmc与服务器bmc之间的高速互联。服务器bmc通过usb&urat总线与网卡bmc互联实现:
44.服务器bmc将智能网卡上器件(如fpga、soc、cpld)的固件发送到网卡bmc,以实现固件刷新;
45.服务器bmc从网卡bmc获取温度、电压、状态信息;
46.服务器bmc从网卡bmc获取soc上的系统日志。
47.除了上述的网卡bmc与服务器bmc互联方式,有的智能网卡还在网卡bmc与服务器bmc之间配置ncsi总线进行互联。智能网卡通过额外的连接器和总线来实现网卡bmc与服务器bmc之间的高速互联,带来智能网卡整体成本增加,体积增大,而且额外的连接器可以使得智能网卡不能适配那些未预留相应接口的服务器。为了实现网卡bmc和服务器bmc之间互联,一般需要网卡bmc和服务器bmc采用同一厂商的bmc,保证两种bmc之间互联代码的兼容以减少生产过程中适配工作,这就进一步限制智能网卡的通用性。现有的智能网卡只能通过器所在的本地服务器的bmc与之进行网络连接,智能网卡至通过pcie连接器与本地服务器连接时,即使本地服务器也不能与智能网卡实现网络连接,缺乏网络连接方式使得这种使用状态的智能网卡可维护性可测试行差。
48.实施例1
49.参阅图2所述,本实施例提供一种通用性强的智能网卡bmc通信结构,应用在智能网卡中以解决智能网卡存在的上述问题。该通用性强的智能网卡bmc通信结构包括:
50.通信单元,其中,一种可行的的所述通信单元集成在现有智能网卡的fpga中。参阅图3所示,所述通信单元包括第一接口控制模块,所述第一接口控制模块通过总线连接智能网卡的网卡bmc的通信接口,连接所述第一接口控制模块和所述网卡bmc的总线为高速总线,具体实施过程中,连接第一接口控制模块和所述网卡bmc的高速总线可以采用usb总线或者spi总线中的任意一种。
51.所述通信单元包括第一fifo缓存和第二fifo缓存,所述第一接口控制模块连接所述第一fifo缓存和第二fifo缓存;所述第一fifo缓存用于存储所述第一接口控制模块上传的上行数据,所述第二fifo缓存用于存储所述第一接口控制模块接收的下行数据。
52.所述第一fifo缓存连接以太网组帧模块,所述以太网组帧模块连接第二接口控制模块,所述第二接口控制模块通过网络端口连接本地服务器或其他终端;具体实施过程中,所述第一fifo缓存中的上行数据按照先进先出发送给所述以太网组帧模块,所述以太网组帧模块将上行数据封装成以太帧,所述以太网组帧模块将封装的以太帧发送给所述第二接口控制模块,所述第二接口控制模块将封装的以太帧经网络端口发送给本地服务器或其他终端。
53.具体实施过程中,所述网络端口采用sfp光模块,sfp光模块是智能网卡进行以太帧传输的必备接口,预留一个智能网卡的sfp光模块连接所述第二接口控制模块实现通信单元与本地服务器或其他终端的连接。其他终端通过交换机与智能网卡的网卡bmc进行通信以监测、维护、测试智能网卡。
54.具体实施过程中,所述网络端口经交换机连接本地服务器lan接口连接或者连接其他终端lan口。其中,本地服务器lan接口连接本地服务器南桥,本地服务器南桥连接服务器bmc。
55.所述第二接口控制模块连接以太网解帧模块,所述以太网解帧模块连接第二fifo缓存;所述第二接口控制模块将从本地服务器或其他终端获取的以太帧发送给所述以太网解帧模块,所述以太网解帧模块将以太帧解析成下行数据,所述以太网解帧模块将下行数据发送给第二fifo缓存存储,所述第二fifo缓存中的下行数据按照先进显出发送给所述第一接口模块,所述第一接口模块将从第二fifo缓存获取的下行数据发送给所述网卡bmc。
56.具体实施过程中,为了保证所述通信单元实现以太帧转换,所述通信单元还配置控制时钟模块、流控制状态机、状态寄存器以及命令表和地址表。
57.所述时钟模块产生至少两组时钟脉冲,用于为所述通信单元的数据转换过程提供时钟信号。
58.所述流控制状态机用于控制数据转换过程中数据流的传输,保证上行数据和下行数据有序地通过所述通信单元有序处理转发。
59.所述状态寄存器用于记录所述通信单元在数据转换过程中的通信单元状态。具体实施过程中,所述通信单元配置通信io接口,所述通信单元通过通信io接口连接通信单元的监控处理器,向所述监控处理器发送通信单元状态。
60.所述命令表用于设定命令顺序,所述通信单元在生成或解析以太帧过程中的命令与命令表匹配,按命令表设定的命令顺序执行相应命令完成生成或解析以太帧;所述地址表用于学习记录网卡bmc通信过程中所连接的本地服务器或其他终端地址,将地址与网卡bmc地址映射,再次连接时按照所述地址表中的地址映射连接。
61.所述网卡bmc通过所述通信单元实现与本地服务器或这其他终端的高速连接。与现有技术相比,利用智能网卡自身本就会设置sfp光模块实现网卡bmc与外界通信,无需额外配置总线及接口使得应用本技术的智能网卡布局简单,成本低。而且服务器都会配置lan接口,这就使得应用本技术的智能网卡能够适配全部的服务器。与现有技术相比将网卡bmc的上行数据和本地服务器或其他终端的下行数据都转换为相同标准的以太帧,解决了网卡
bmc与其他设备互联的兼容问题。与现有技术相比,智能网卡的网卡bmc不仅仅只限于连接本地服务器,还能与其他终端进行网络连接,方便进行智能网卡的监测、测试以及维护。
62.另外本技术提供的通用性强的智能网卡bmc通信结构中,所述网卡bmc还通过i2c总线经pcie金手指边带与服务器bmc连接,服务器bmc配置为i2c的主设备,网卡bmc配置为i2c从设备。本技术的通用性强的智能网卡bmc通信结构沿用现有智能网卡的设计,使得网卡bmc与服务器bmc能够通过i2c总线直接通信。
63.实施例2
64.本实施例提供一种智能网卡,该智能网卡包括处理网络负载的fpga、soc芯片、实现智能网卡与本地服务器数据通信的pcie金手指,以及智能网卡外部设备通信的sfp光模块,所述智能网卡还包括网卡bmc,网卡bmc应用本技术提供的通用性强的智能网卡bmc通信结构。
65.实施例3
66.参阅图4所示,本实施例提供一种通用性强的智能网卡bmc通信方法,本通用性强的智能网卡bmc通信方法过程包括:
67.本地服务器或其他终端发送携带命令或数据的以太帧;具体实施过程中,本地服务器或者用于对智能网卡进行监测、维护、测试的其他终端将命令或者数据通过以太帧发送给智能网卡。本地服务器的服务器bmc还能通过服务器南桥和服务器lan口向智能网卡的网卡bmc发送包含命令或数据的以太帧。
68.第二接口控制模块接收以太帧并发送给以太网解帧模块。
69.所述以太网解帧模块解析以太帧获取命令或数据,并将命令或数据存储在第二fifo缓存。具体实施过程中,所述第二fifo缓存在已满或者将满时,所述第二fifo缓存通过状态电路发送满标志信号,以阻止第二接口控制模块向所述第二fifo缓存继续写数据。
70.第一接口控制模块按顺序从所述第二fifo缓存获取命令或数据,所述第一接口控制模块将获取的命令或数据发送给网卡bmc;具体实施过程中,所述第二fifi缓存为空时,所述第二fifo缓存通过装填电路发送空标志信号,阻止第一接口控制模块从第二fifo缓存继续读数据。
71.所述网卡bmc执行命令或接收数据后,所述网卡bmc发送反馈信息。
72.所述第一接口控制模块接收反馈信息并将反馈信息发送到第一fifo缓存存储;具体实施过程中,所述第一fifo缓存在已满或将满时,通过状态电路发送满标志信号,以阻止所述第一接口模块向所述第一fifo缓存继续写反馈信息。
73.以太网组帧模块从所述第一fifo缓存获取反馈信息并封装成以太帧;具体实施过程中,所述第一fifo缓存在为空时,通过状态电路发送空标志信号,以阻止所述以太网组帧模块从所述第一fifo缓存继续读反馈信息,所述以太网组帧模块将反馈信息封装成以太帧。
74.所述第二接口控制模块获取所述以太网组帧模块生成的以太帧发送给本地服务器或其他终端。具体实施过程中,利用所述智能网卡内置交换机将第二接口控制模块与本地服务器或者其他终端连接。第二接口控制模块获取所述以太网组帧模块生成的以太帧发送给本地服务器或其他终端。
75.通过上述方法过程实现网卡bmc与本地服务器或者其他终端通过以太帧进行高速
互联。
76.本技术通用性强的智能网卡bmc通信方法过程还包括:
77.所述网卡bmc响应于本地服务器的服务器bmc的i2c读请求反馈相应的数据给本地服务器的服务器bmc。以及网卡bmc响应于本地服务器的服务器bmc的i2c写请求从本地服务器bmc获取相应的数据。
78.具体实施过程中,由本地服务器的服务器bmc向i2c总线发送起始信号、7位地址(表示网卡bmc)以及1位读信号,i2c总线连接的网卡bmc匹配7位地址后在i2c总线上应答,服务器bmc接收到应答后发送要写的存储地址,网卡bmc在i2c总线上应答,服务器bmc接收到应答后通过i2c总线向要写的存储地址发送写数据,网卡bmc接收写数据后在i2c总线上应答,服务器bmc发送停止信号,停止写。
79.具体实施过程中,由本地服务器的服务器bmc在i2c总线上发送起始信号,7位地址(表示网卡bmc)以及1位写信号,i2c总线上连接的网卡bmc匹配7位地址后在i2c总线上应答,服务器bmc接收应答后通过i2c总线发送读取地址,网卡bmc接收读取地址后应答。服务器bmc在i2c上发送起始信号、7位地址以及1位读信号,i2c总线上的网卡bmc匹配7位地址后在i2c总线上应答,服务器bmc从读取地址读取数据,读取数据完成后在i2c总线上发送应答,服务器bmc发送停止信号,停止读。
80.本技术提供的通用性强的智能网卡bmc通信结构通过通信单元整合处理网卡bmc的带外信息,通过以太帧的形式使网卡bmc与本地服务器或者与其他终端通信,从而将网卡bmc通信的多种总线整合成一种,降低智能网卡的复杂性。
81.由于服务器均设置lan口,通信单元能通过lan口连接服务器,使得智能网卡能够适配任何服务器,增加智能网卡的适配性。
82.网卡bmc和服务器bmc之间通过通信单元连接,互通的数据经通信单元转换为标准的以太帧,这就使得网卡bmc和服务器bmc不必采用同一厂商的bmc产品即可实现通信的兼容。可以多样化产品供应链以降低成本。
83.网卡bmc通过通信单元连接交换机,交换机连接本地服务器或其他终端,使得本地服务器、本地服务器的服务器bmc和其他终端均能够网络连接网卡bmc,使得智能网卡的可维护性、可测试性以及可监测性更强。
84.在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
85.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
86.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单
元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
87.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1