本发明涉及计算机体系结构以及fpga(现场可编程门阵列)异构加速领域,特别涉及一种实现fpga服务器的方法和系统。
背景技术:
半导体工艺的发展速度逐渐成为制约计算机系统性能的瓶颈,传统的串行处理技术已经不能满足人们的需求,人们开始把注意力放在可并行计算的fpga上。fpga以其高能效和可多次编程的优势,逐渐成为突破现有系统性能瓶颈的解决方案。在媒体压缩、加解密、ai、大数据处理等领域,fpga方案较传统cpu和gpu,往往可达到几倍甚至几十倍的能效提升。然而fpga开发的技术门槛较高,搭建fpga硬件平台更是高成本,长周期,如此的使用门槛,很难适应瞬息万变的市场经济。为了追求经济与效益的最优化,fpga云平台应运而生,运营商为用户提供稳定的fpga硬件平台以及一整套的开发环境,用户支付相对较低的价格就可以使用到高端的fpga资源,快速的开始项目的开发工作。在最近几年,fpga云的发展尤为迅猛,亚马逊在2017年4月宣布fpgaec2实例f1正式上线,同年国内互联网巨头bat、华为也纷纷宣布开展fpga云加速器业务,这一波fpga云风势之猛可见一斑。
目前就现有的主要运营商的fpga云平台,其基本框架如图1所示,主要分三部分:客户端、服务端和fpga节点端。客户端安装在用户的本地pc上,也可以通过网页登录使用云平台,客户端与服务端通过互联网进行数据交互。服务端主要由一台x86(或arm、power等架构)服务器组成,服务端集成了应用程序开发、fpga加速逻辑开发所需的全套开发工具,运营商将x86服务器与fpga节点作为一个整体提供给用户使用,fpga节点只包含逻辑资源。即现有技术提供给用户的是一个包含fpga加速卡的x86服务器,fpga加速卡与x86服务器通过标准的pcie相连。现有fpga云服务器提供给用户的是一个x86服务器,只是这个x86服务器比较特别,插一个fpga加速卡,用做硬件加速。
服务端与fpga节点端通过pcie接口进行数据交互,受限于接口形式,fpga节点需部署在x86服务器机箱里,一台x86服务器根据自身机箱尺寸以及主板pcie的接口数量,可部署的fpga节点数量通常不会超过8个。如亚马逊的fpgaec2实例f1,每个f1实例计算池上最多可配置8个fpga节点。在现有的云框架下,fpga节点很难进行高密度的部署,如果进行大量部署,需要大量的x86服务器,部署成本高,且占用大量的物理空间。
现有云平台将x86服务器与fpga节点作为一种资源提供给用户,用户可以在x86服务器中开发自己的应用软件,也可以在x86服务器中完成fpga加速逻辑的开发。开发完成后,x86服务器与fpga节点作为一个整体,为用户提供一个高性能的网络加速服务器。这种使用模式偏商业化,针对不同的用户群体,这种模式并不是最优的,如果用户使用fpga云平台的目的不是得到一个可以进行网络加速的服务器,而仅仅是想学习或者使用fpga板卡进行fpga逻辑的开发(比如教学领域),对x86服务器并没有太大的需求,在这种场景下,x86 fpga节点这种架构显然有些浪费。
此外,商用服务器本身的设计理念并不是以部署fpga节点为目的,所以在fpga节点的部署、管理和使用上并不灵活(比如动态的给多个fpga节点上电和下电)。现有的fpga云平台很难高密度的部署fpga节点;针对特定的用户群体,会造成x86服务器资源的浪费;在现有框架下管理和使用fpga节点并不灵活。
现有fpga云平台,用户会在本地通过客户端软件或者网页登录到x86服务器系统中,在运营商提供的开发环境下,完成应用程序以及fpga加速逻辑的开发,最终将x86服务器 fpga节点部署为用户自定义的网络加速服务器。
受整体框架的限制,fpga节点很难高密度部署;
如果用户的目的只是学习或使用fpga板卡,而不是部署一个网络加速服务器,会造成x86服务器资源的浪费;
商用x86服务器并不是针对fpga而设计的,在管理和使用fpga节点上并不灵活。商用的fpga服务器更依赖于pcie通路,pcie通路建立起来后才能使用fpga节点,pcie接口的目的主要是高速数据交互,在fpga服务器场景下,对fpga节点的控制和调试并不灵活,虽然pcie接口也设有jtag等调试接口,但绝大多数的服务器主机都是不使用也不支持这些接口的。
技术实现要素:
本发明主要是针对现有fpga云平台的缺点,进一步降低fpga云平台的部署和维护成本,提高硬件资源的利用率;提高fpga节点的部署密度,增大物理空间的利用率,增强对fpga节点的控制监测能力;自主研发定制机箱以及智能管理与动态调度系统,给用户提供一个方便快捷、价格低廉的fpga资源使用环境。
针对现有技术的不足,本发明提出一种实现fpga服务器的系统,通过主控底板实现对机箱内所有socfpga(集成处理器硬核或软核的fpga器件)计算节点资源的集中监控与管理,该主控底板包括:
多个自定义管理接口,分别用于连接socfpga计算节点,为该socfpga计算节点提供供电和数据交换;
管理网络交换模块,用于互连该socfpga计算节点并提供管理网络;
核心控制单元,用于通过自定义管理接口及自定义管理接口协议对socfpga计算节点进行管理,并基于该管理接口协议获取该socfpga计算节点的运行参数,以管理监控该socfpga计算节点。
所述的一种实现fpga服务器的系统,其中该管理监控包括上电、断电、fpga的远程逻辑配置、远程调试、功耗监测、温度监测、串口交互以及主控底板固件的在线升级等。
所述的一种实现fpga服务器的系统,其中核心控制单元包括处理器部分和可编程逻辑部分;该处理器部分的处理器核负责运行管理用的操作系统或管理程序,提供各种管理接口的驱动服务;该可编程逻辑部分为可编程逻辑资源,用来实现对多个自定义管理接口的接口逻辑时序控制。
所述的一种实现fpga服务器的系统,其中该核心控制单元监测自定义管理接口是否有socfpga计算节点插入,若有,通过自定义接口对其进行管理及监控;
该管理监控包括:监测所有socfpga计算节点的上下电、输入电压和输入电流信息,对已插入该自定义管理接口的socfpga计算节点,监测其工作状态;
且该自定义管理接口、该管理网络交换模块和核心控制单元共同构成管理平面网络;
socfpga计算节点通过其数据网络接口,将用户数据输出至数据网络交换模块,且该数据网络交换模块的数据网络与该主控底板的管理网络相隔离。
所述的一种实现fpga服务器的系统,该socfpga计算节点包括与该自定义管理接口相连的自定义金手指,且该自定义金手指与该socfpga计算节点的标准pcie金手指间具有高度差,该高度差大于或等于12.75mm/501.97mil。
本发明还提出了一种实现fpga服务器的方法,其中通过主控底板实现对机箱内所有socfpga计算节点资源的集中监控与管理,包括:
步骤1、通过自定义管理接口连接socfpga计算节点,为该socfpga计算节点提供供电和数据交换;
步骤2、通过管理网络交换模块,互连该socfpga计算节点并提供管理网络;
步骤3、通过核心控制单元,设定与该socfpga计算节点的管理接口协议,并基于该管理接口协议获取该socfpga计算节点的运行参数,以管理监控socfpga计算节点。
所述的一种实现fpga服务器的方法,其中该管理监控包括上电、断电、fpga的远程逻辑配置、远程调试、功耗监测、温度监测、串口交互以及主控底板固件的在线升级等。
所述的一种实现fpga服务器的方法,其中核心控制单元包括处理器部分和可编程逻辑部分;该处理器部分的处理器核负责运行管理用的操作系统或管理程序,提供各种管理接口的驱动服务;该可编程逻辑部分为可编程逻辑资源,用来实现对多个自定义管理接口的接口逻辑时序控制。
所述的一种实现fpga服务器的方法,其中该核心控制单元监测自定义管理接口是否有socfpga计算节点插入,若有,通过自定义管理接口对其进行管理及监测;
该管理监控包括:监测所有socfpga计算节点的上下电、输入电压和输入电流信息,对已插入自定义管理接口的socfpga计算节点,监测其工作状态;
且该自定义管理接口、该管理网络交换模块和该核心控制单元共同构成管理平面网络;
socfpga计算节点通过其数据网络接口,将用户数据输出至数据网络交换模块,且该数据网络交换模块的数据网络与该主控底板的管理网络相隔离。
所述的一种实现fpga服务器的方法,该socfpga计算节点包括与该自定义管理接口相连的自定义金手指,且该自定义金手指与该socfpga计算节点的标准pcie金手指间具有高度差,该高度差大于或等于12.75mm/501.97mil。
由以上方案可知,本发明的优点在于:
1、本发明将使得fpga服务器中的fpga资源更加紧凑、密度更高;
2、简化机箱内的布线成本,简化组装复杂度,降低维护难度;
3、通过自定义管理接口协议,能够实现对fpga资源进行更全面、更复杂、更灵活的控制与监管;
4、机箱内部的管理平面网络与用户数据平面网络相互独立,避免管理网络的突发性传输影响数据网络的带宽性能,并提高数据安全性。
附图说明
图1为现有fpga云平台的基本框架图;
图2为本发明结构图;
图3为主控底板的结构示例图;
图4为自定义管理接口(金手指插座)的信号分配示意图;
图5为socfpga计算节点上的自定义管理接口示意图。
具体实施方式
现有fpga云平台,其主要目的是在云端提供给用户含有fpga加速资源(如pcie形式的fpga板卡)的x86(或arm、power等架构)服务器,fpga加速逻辑可以由用户自己开发。x86服务器本身集成了全套的软硬件开发环境,服务器与fpga节点间通过pcie接口进行数据交互,fpga的配置、调试以及管理全部基于pcie接口进行的。在物理形式上,fpga节点会部署在服务器机箱内部。
本发明主要是针对现有fpga云平台的缺点,进一步降低fpga云平台的部署和维护成本,提高硬件资源的利用率;提高fpga节点的部署密度,增大物理空间的利用率;自主研发定制机箱以及云平台的智能管理与动态调度环境,给用户提供一个方便快捷、价格更低廉的fpga资源使用环境。
本发明的技术难点以及解决的技术问题在于如何实现fpga服务器的管理系统,以将fpga资源以更高的密度进行部署。具体来说,本发明关键点包括:
1、服务器内部通过自定义管理接口进行互联;技术效果:网络交换芯片集成在主控底板上,可以提高集成密度;
2、独立的控制管理单元;技术效果:管理更方便,维护更方便;
3、自定义管理接口设计;技术效果:自定义管理接口的物理形式可以但不局限于标准的pcie接口,其信号定义为fpga服务器管理所需的供电、管理总线或信号,可以很大程度的简化机箱内部走线。
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
如图2所示,本发明以fpga服务器为基础,提出了服务器内部使用主控底板(bh底板)实现对机箱内所有socfpga计算节点资源的集中监控与管理。
图3为主控底板的结构示例。核心控制单元是主控底板的控制核心,以太网交换模块用于管理网络的交换。核心控制单元中可以运行操作系统(比如linux),内部集成管理、调度、检测所需的运行环境,通过自定义管理接口(本实施例的自定义管理接口的物理形态为pciex4的金手指插座)对socfpga计算单元进行监控管理。
核心控制单元可以是带arm硬核的fpga器件,也可以是带处理器软核(可以是不同指令集,如arm、risc-v等)的fpga器件,或者是其他控制芯片等。核心控制单元内部可以运行操作系统,也可以直接运行管理监控程序。
自定义管理接口的物理形式可以是pcie插座与pcie金手指,也可以是其他物理形式的插座与金手指,该管理接口集成了自定义的管理接口协议,更好的实现了主控底板对socfpga计算节点的监测与管理。为了具备更强的通用性,同时兼顾socfpga资源的开发需求,自定义的管理接口协议可以集成以太网、串口、jtag口、iic口等标准协议接口协议,同时也可以集成供电、socfpga计算节点插入检测、全局时钟、全局复位等功能信号。
图4所示为自定义管理接口示例,本例中接口的物理形式采用pciex4接口(pciex4插座),图4中,方框内的引脚定义为标准pcie接口的信号定义,外部连线的信号定义为自定义管理接口的信号定义。
供电接口:为socfpga计算节点提供电源,每个管理接口最大功率为300w,足以满足绝大多数硬件板卡的供电需求。供电接口是否供电可以由主控底板进行动态控制。
计算节点插入检测引脚:用来检测是否有socfpga计算节点接入到主控底板上,通过这个信号,主控底板可以动态掌控socfpga计算节点的数量,根据可用资源数量进行动态调度。
全局复位信号:用于对socfpga计算节点进行全局复位,当socfpga计算节点出现故障时,保证可以复位到初始状态。
jtag调试口:用于支持socfpga计算节点在技术开发的过程中,所必须的配置、调试功能。
模式选择:该信号决定了socfpga计算节点是否工作在fpga服务器模式下。这个信号可以使socfpga计算节点具有更好的兼容性,可以放在本发明所提出的fpga服务器中进行使用开发,也可以兼容商用的fpga服务器,即放在商用的fpga服务器中使用。
iic口:自定义管理接口集成了iic接口,可以很好的支持对绝大多数传感器的控制,用以支持对socfpga计算节点上的电压、电流、温度、功率等信息进行监测,并基于此实现过压、过流、过温等保护机制。
管理网络:socfpga计算节点内部拥有处理器核,为了方便与处理器核的交互,自定义管理接口集成了以太网接口(管理网络),实现主控底板与socfpga计算节点的管理网络通信。通过管理网络,底板可以很好的监测socfpga计算节点上处理器核的工作状态、性能参数以及一些其他的信息,增强了主控底板对socfpga计算节点的掌控能力。
现有技术中的商用fpga服务器,受限于接口形式,fpga节点必须要通过标准的pcie接口与x86(或arm、power等架构)服务器连接,而标准的pcie接口提供的功率最大为75w,但绝大多数高端的fpga节点的功率都会大于75w,所以就必须要通过fpga节点上的其他供电接口进行单独供电或者补充供电,增加了服务器机箱布线的复杂性。
在fpga节点的配置方面,现有技术中商用的fpga服务器通过pcie接口对fpga节点进行配置,这就需要使用部分可重构技术,先要把fpga节点的pcie接口部分配置好,在通过pcie接口实现对其他逻辑资源的配置,即fpga节点必须要消耗一部分逻辑资源用以支持pcie接口,剩下的逻辑资源才是可分配使用的,同时也需要需部分可重构技术的支持,增加了系统的复杂性。本发明提出的fpga服务器,在自定义管理接口上集成了jtag口,可以直接对socfpga计算节进行完整的配置,简单高效。
现有技术中的商用fpga服务器,fpga节点大多用于开发加速逻辑,同时也受限于标准的pcie接口,如果fpga内集成了处理器核,很难对fpga节点上的处理器核进行调试。本发明所提出的fpga服务器,自定义管理接口上集成了串口和以太网(管理网络),方便了fpga计算节点的处理器核以及操作系统(比如linux)的开发。
socfpga计算节点可以使用标准pcie板卡板型,但需要在板卡上有额外的自定义金手指,用来与fpga服务器的主控底板互连。socfpga计算节点上的自定义金手指与标准pcie金手指具有确定的高度差,从而保证用户板卡也可以插入标准服务器机箱的pcie插座中,本实施例的自定义金手指的物理形态为pciex4金手指,外观示意如图5所示。具体来说,自定义金手指与标准pcie金手指位置具有确定的高度差(大于或约等于12.75mm/501.97mil),从而保证供用户使用的socfpga计算节点板卡也可以插入标准服务器机箱的pcie插座中。既确保此socfpga计算节点板卡自定义金手指部分不与标准服务器主板上的元器件发生结构干涉,又能最大限度保留socfpga计算节点板卡的布局布线空间。或者说,自定义物理接口的边缘不能超出标准pcie板卡规范的边框范围,最大情况是自定义物理接口的边缘与标准pcie板卡规范的边框边缘齐平。这样从外围来看,确保带有自定义金手指的板卡依旧符合pcie板卡机械尺寸规范。另一方面,对于水平方向,自定义金手指与标准pcie金手指(含金手指卡扣)之间的水平距离差大于或等于0即可,确保自定义金手指或标准pcie金手指可以插入对应的接插件插座即可。外观示意如图5所示。
服务器机箱内部除了若干块socfpga计算节点和bh底板,还包括独立的高速以太网交换机用来直接连接socfpga计算节点的数据通路,以及机箱ac-dc电源模组。
本发明的关键点在于用一个bh底板来提供fpga服务器机箱内部socfpga计算节点资源监测与管理网络,且bh底板与socfpga计算节点直接采用了一种自定义管理接口(如:pcie金手指插座)作为互连,去除了传统机箱内部的大量电源和管理网络布线,便于安装与调试。另外,此发明对于socfpga计算节点外形改动较小,仅需额外增加一个自定义金手指,且不影响对标准服务器机箱的兼容性。
bh底板对fpga服务器进行全面的控制和监测。bh底板完成用户登录管理、调度分配socfpga计算节点资源、管理监测用户状态、管理监测socfpga计算节点的工作状态等,并集成了使用部署过程中所需的软硬件支持。
管理总线是自定义的接口总线,用于bh底板对socfpga计算的点的管理及交互,包括供电、电源监测(电压、电口、功率等)、温度监测、socfpga计算节点状态监测、配置、调试、复位、时钟、串口信息交互等。socfpga计算节点可以为用户提供专用的数据网络接口,用户可以通过该接口进行用户数据传输,该数据网络与fpga服务器的管理网络相隔离。现有商用fpga服务器由于缺少主控底板对fpga节点的管理,需要借助外界的x86服务器或cpu通过标准的pcie通路对fpga板卡进行管理,不灵活也缺乏安全性,即用户数据和管理数据全部需要经过pcie通路,网络带宽相互影响,且存在安全隐患。
用户首先需要通过用户名和密码登录fpga服务器,登录成功后申请socfpga计算节点资源,申请成功后,便可直接对socfpga计算节点进行逻辑功能开发,bh底板集成了开发过程中所需的远程配置、调试等基本功能。
本发明提出了一种实现fpga服务器的方法,其中通过主控底板实现对机箱内所有socfpga计算节点资源的集中监控与管理,包括:
步骤1、通过自定义管理接口连接socfpga计算节点,为该socfpga计算节点提供供电和数据交换;
步骤2、通过管理网络交换模块,互连该socfpga计算节点并提供管理网络;
步骤3、通过核心控制单元,设定与该socfpga计算节点的管理接口协议,并基于该管理接口协议获取该socfpga计算节点的运行参数,以管理监控socfpga计算节点。
所述的一种实现fpga服务器的方法,其中该管理监控包括上电、断电、fpga的远程逻辑配置、远程调试、功耗测量、温度测量、串口交互以及主控底板固件的在线升级等。
所述的一种fpga的加速服务器的方法,其中核心控制单元包括处理器部分和可编程逻辑部分;该处理器部分的处理器核负责运行管理用的操作系统或管理程序,提供各种管理接口的驱动服务;该可编程逻辑部分为可编程逻辑资源,用来实现与自定义管理接口之间的接口逻辑时序控制。
所述的一种实现fpga服务器的方法,其中该核心控制单元监测自定义管理接口是否有socfpga计算节点插入,若有,通过自定义管理接口对其进行管理及监控;
该管理监控包括:监测所有socfpga计算节点的上下电、输入电压和输入电流信息,对已插入该自定义管理接口的socfpga计算节点,监测其工作状态;
且该自定义管理接口、该管理网络交换模块和该核心控制单元共同构成管理平面网络;
socfpga计算节点通过其数据网络接口,将用户数据输出至数据网络交换模块,且该数据网络交换模块的数据网络与该主控底板的管理网络相隔离。
所述的一种实现fpga服务器的方法,该socfpga计算节点包括与该自定义管理接口相连的自定义金手指,且该自定义金手指与该socfpga计算节点的标准pcie金手指间具有高度差,该高度差大于或等于12.75mm/501.97mil。
1.一种实现fpga服务器的系统,其特征在于,通过主控底板实现对机箱内所有socfpga计算节点资源的集中监控与管理,该主控底板包括:
多个自定义管理接口,分别用于连接socfpga计算节点,为socfpga计算节点提供供电和数据交换;
管理网络交换模块,用于互连socfpga计算节点并提供管理网络;
核心控制单元,用于通过自定义管理接口及自定义管理接口协议对socfpga计算节点进行管理,并基于该管理接口协议获取socfpga计算节点的运行参数,以管理监控该socfpga计算节点。
2.如权利要求1所述的一种实现fpga服务器的系统,其特征在于,该管理监控包括上电、断电、fpga的远程逻辑配置、远程调试、功耗监测、温度监测、串口交互以及主控底板固件的在线升级等。
3.如权利要求1所述的一种实现fpga服务器的系统,其特征在于,核心控制单元包括处理器部分和可编程逻辑部分;该处理器部分的处理器核负责运行管理用的操作系统或管理程序,提供各种管理接口的驱动服务;该可编程逻辑部分为可编程逻辑资源,用来实现对多个自定义管理接口的接口逻辑时序控制。
4.如权利要求1所述的一种实现fpga服务器的系统,其特征在于,核心控制单元监测自定义管理接口是否有socfpga计算节点插入,若有,通过自定义管理接口对其进行管理及监控;
该管理监控包括:监测所有socfpga计算节点的上下电、输入电压和输入电流信息,对已插入该自定义管理接口的socfpga计算节点,监测其工作状态;
且该自定义管理接口、该管理网络交换模块和该核心控制单元共同构成管理平面网络;
socfpga计算节点通过其数据网络接口,将用户数据输出至数据网络交换模块,且该数据网络交换模块的数据网络与该主控底板的管理网络相隔离。
5.如权利要求1所述的一种实现fpga服务器的系统,其特征在于,该socfpga计算节点包括与该自定义管理接口相连的自定义金手指,且该自定义金手指与该socfpga计算节点的标准pcie金手指间具有高度差,该高度差大于或等于12.75mm/501.97mil。
6.一种实现fpga服务器的方法,其特征在于,通过主控底板实现对机箱内所有socfpga计算节点资源的集中监控与管理,包括:
步骤1、通过自定义管理接口连接socfpga计算节点,为该socfpga计算节点提供供电和数据交换;
步骤2、通过管理网络交换模块,互连该socfpga计算节点并提供管理网络;
步骤3、通过核心控制单元,设定与该socfpga计算节点的管理接口协议,并基于该管理接口协议获取该socfpga计算节的运行参数,以管理监控socfpga计算节点。
7.如权利要求6所述的一种实现fpga服务器的方法,其特征在于,该管理监控包括上电、断电、fpga的远程逻辑配置、远程调试、功耗监测、温度监测、串口交互以及主控底板固件的在线升级等。
8.如权利要求6所述的一种实现fpga服务器的方法,其特征在于,核心控制单元包括处理器部分和可编程逻辑部分;该处理器部分的处理器核负责运行管理用的操作系统或管理程序,提供各种管理接口的驱动服务;该可编程逻辑部分为可编程逻辑资源,用来实现对多个自定义管理接口的接口逻辑时序控制。
9.如权利要求6所述的一种实现fpga服务器的方法,其特征在于,该核心控制单元监测自定义管理接口是否有socfpga计算节点插入,若有,通过自定义管理接口对其进行管理及监测;
该管理监控包括:监测所有socfpga计算节点的上下电、输入电压和输入电流信息,对已插入该自定义管理接口的socfpga计算节点,监测其工作状态;
且该自定义管理接口、该管理网络交换模块和核心控制单元共同构成管理平面网络;
socfpga计算节点通过其数据网络接口,将用户数据输出至数据网络交换模块,且该数据网络交换模块的数据网络与该主控底板的管理网络相隔离。
10.如权利要求6所述的一种实现fpga服务器的方法,其特征在于,该socfpga计算节点包括与该自定义管理接口相连的自定义金手指,且该自定义金手指与该socfpga计算节点的标准pcie金手指间具有高度差,该高度差大于或等于12.75mm/501.97mil。
技术总结