一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于ARM和FPGA的高能物理可计算存储设备

2022-05-18 02:39:57 来源:中国专利 TAG:

一种基于arm和fpga的高能物理可计算存储设备
技术领域
1.本发明属于可计算存储及arm存储技术领域,涉及一种基于arm和fpga(现场可编程逻辑门阵列)的高能物理可计算存储设备及应用方法。


背景技术:

2.随着高能物理实验装置和探测器技术的发展,实验数据量从tb级到pb级甚至eb级地急剧增加。在任务执行方面,高能物理计算是典型的i/o(输入/输出)密集型计算,该模式涉及到海量的数据输入输出,系统运作时,大部分的状况是cpu在等待硬盘/内存的读/写,此时cpu的负载不高。在当前普遍采用的分布式计算系统中,数据存储节点与计算节点普遍不存在于同一台设备中,所以数据需要在硬盘与内存之间、计算节点与存储节点之间频繁搬运,由此导致的算力、功耗以及时间成本已经成为高能物理数据处理对更先进算法探索的限制因素。
3.在任务调度方面,在高能物理计算环境中,用户通常从登录节点提交任务,然后作业调度系统如htcondor/slurm等将作业调度到计算节点,计算节点通过网络从lustre/eos等网络存储系统中读取数据进行分析。随着系统中计算节点密度越来越高、单节点cpu核心数量越来越多、磁盘阵列存储数据越来越多,网络带宽及i/o压力越来越来越严重。
4.在数据存储方面,高能物理实验数据通常会以压缩文件的形式存放在网络存储系统中,以节省存储空间。因此,在高能物理数据处理流程中,需要进行解压缩或者压缩操作。采用传统的基于计算节点cpu的压缩会与数据分析程序争用cpu资源,会导致计算效率降低。
5.另外,高能物理实验使用的存储硬件通常采用2颗基于x86架构的cpu服务器,通过fc-hba卡连接磁盘阵列,或者sas-hba卡连接磁盘扩展柜,再配置10g或者25g、40g带宽的高速网络对外提供服务。这种拥有高配置的服务器在做存储服务的同时,并不能提供其它服务,硬件资源极大浪费,功耗高,密度低,不适合当前国家提倡节能减排的要求,功耗和利用率问题尤其凸显。


技术实现要素:

6.针对高能物理领域i/o密集型数据分析处理过程中数据搬运频繁、网络传输压力大、现有存储密度低、功耗高、功能单一等问题,本发明的目的是:提供一种基于arm的高能物理可计算存储设备及应用方法。该设备是一种高密度、高性能、低功耗并可充分利用片上系统soc(system on chip)功能实现可编程、可计算的存储设备,通过配套的应用方法可以大大降低高能物理数据分析的算力、功耗及时间成本;同时还可以大大的缓解网络、i/o以及计算节点cpu的压力;也能自动的整体实验过程中的多个固定流程解耦并实现在存储节点中,适应范围广,可扩展性强。
7.为了实现上述目的,本发明的技术方案是:
8.一种基于arm和fpga的高能物理可计算存储设备,其特征在于,包括主控模块、扩
展模块和硬盘接入模块;其中,所述主控模块内集成一arm芯片,所述扩展模块内集成一fpga芯片、pcie与sataiii接口转换模块,所述扩展模块的fpga芯片通过pcie总线与所述arm芯片连接,所述扩展模块通过所述pcie与sataiii接口转换模块与硬盘接入模块连接;
9.所述主控模块,用于利用arm芯片对传入数据进行预分析以及对fpga功能调用进行在线控制;当有数据传入高能物理可计算存储设备时,arm芯片首先会根据所传入数据的文件名称或者文件扩展属性分析是否调用目标算法,当确认调用目标算法后,arm会将预先存储的目标算法发送到扩展模块的fpga芯片,否则将所传入数据发送到所述扩展模块;
10.所述pcie与sataiii接口转换模块,用于对fpga芯片输入的数据进行转换后输出给所述硬盘扩展模块,以及将所述硬盘扩展模块输入的数据进行转换后输出给所述fpga芯片;
11.所述扩展模块,用于利用fpga芯片对设定算法进行硬件加速,以及当接收到主控模块发送的数据为目标算法后通过软复位的方式对fpga芯片电路进行部分重配置,实现fpga芯片运行所述目标算法;当接收到主控模块发送的数据为用户待处理数据,则fpga将用户存储数据处理后发送给硬盘接入模块或者发送到所述主控模块并转发到客户端进行展示;
12.所述硬盘接入模块包括若干硬盘槽位,用于与接入的硬盘连接,并将所述扩展模块发送过来的数据存储到所连接的硬盘中。
13.进一步的,所述主控模块接收并解析用户通过应用发送过来的用户指令,若所述用户指令为调用arm芯片cpu或片上系统soc,则遍历所述主控模块中的算法库,然后通过驱动统一接口发送指令到cpu中的加速器驱动子系统,调用bios子系统初始化芯片加速子系统后,通过寄存器操作完成对应用的加速;若所述用户指令为调用fpga芯片进行硬件加速计算,则首先遍历所述硬盘扩展模块中存储的fpga算法电路库,然后将目标算法电路写入扩展模块上的fpga芯片,并通过软复位的方式对fpga芯片电路进行部分重配置,实现fpga芯片运行所述目标算法电路。
14.进一步的,所述扩展模块首先对所述主控模块发过来的数据进行校验,如果为算法电路数据,则为其分配一条单独的pcie加载到工作区;如果为存储数据则将其通过一条pcie总线流入fpga进行运算后流出到所述硬盘接入模块。
15.进一步的,所述主控模块还包括内存、闪存、sd卡和以太网卡。
16.进一步的,所述扩展模块与所述硬盘接入模块通过sff-8643接口连接。
17.进一步的,所述高能物理可计算存储设备包括双冗余电源。
18.一种大型存储设备,其特征在于,包括多个分布式部署的节点,所述节点为所述基于arm和fpga的高能物理可计算存储设备;每一所述节点上安装分布式存储系统。
19.本发明基于arm和fpga的高能物理可计算存储设备,规格为1u(1u=4.445厘米)高度,设备包括主控模块、扩展模块和硬盘接入模块,所述主控模块集成1颗arm cpu,两条ddr4规格的内存(单条支持32gb以上),8m以上nor flash闪存,32gb以上micro sd卡,2个10g带宽的以太网卡等;所述单颗cpu包含100gbits/s的压缩/解压缩引擎,支持zlib、deflate、gzip数据格式;所述扩展模块包括1个fpga芯片、pcie与sataiii接口转换模块,所述fpga芯片通过pcie总线与arm相连;所述硬盘接入模块包括12块3.5寸sata3.0硬盘槽位;每个可计算存储设备支持双冗余电源。
20.具体的,所述sata硬盘槽位可以满配,也可以部分配置,可以配置ssd硬盘,也可以配置普通的机械硬盘。按照每块硬盘存储容量14tb计算,单个1u节点支持168tb存储空间,单个节点读写带宽性能达到6gb/sec。
21.所述设备既可以作为单个存储节点使用,也可以将各个存储节点通过以太网交换机组合成一台大型存储设备使用。当组合使用时,需要在各个存储节点上安装eos、gluster、ceph、hdfs等分布式存储系统,形成统一的存储池。
22.本发明还公开了一种基于arm和fpga的高能物理可计算存储设备的应用方法,包括以下部分:
23.硬件计算能力调用方法、fpga部分重配置方法以及计算任务调度方法。
24.所述硬件计算能力调用方法包括对cpu/soc以及fpga硬件计算能力的调用。涉及硬件调用的用户指令从应用发出,主控模块上cpu根据指令所包含的参数(即算法名称),确定接下来调用主控模块上cpu/soc加速算法还是扩展模块上fpga加速算法,即可识别采用何种方式进行硬件加速,若调用cpu/soc则会首先将存储在硬盘扩展模块的算法库加载到主控模块的内存中,遍历硬盘扩展模块中存储的算法库,然后通过驱动统一接口发送指令到cpu内部的芯片加速子系统后,通过主控模块上寄存器操作完成对应用的加速;若调用fpga进行硬件加速计算,则会首先遍历本发明开发并存储在硬盘中的fpga算法库,通过指令中的算法名称查找目标算法加载到扩展模块的flash中,算法库包含算法电路如压缩、解压缩、纠删码等通用算法以及decode、机器学习模型等专用算法,然后以bit stream的形式通过内部总线将flash中的算法电路写入扩展模块上的fpga,使用fpga部分重配置方法更换其内部电路。为了区分算法电路数据和用户的待处理数据,本发明为算法电路数据bit stream分配一条单独的pcie并且校验输入数据类型,用户的待处理数据将会以bit stream的形式通过另一条pcie总线流入fpga进行运算,算法运行结果根据算法内部的定义发送到主控模块并转发到客户端进行展示或者发送到硬盘接入模块进行存储,不会在fpga中停留。
25.所述fpga部分重配置方法依据应用需求通过软复位方式更换fpga内部执行算法。在设备上电时,fpga会首先加载预先烧写的工作电路,使其在操作系统中显示为一个硬件设备便于调用。当系统或用户指令调用fpga功能时,cpu首先从flash中获取目标功能算法电路,该电路以bit stream的形式由pcie总线发送到fpga,fpga对其校验判别为算法数据流后会将其加载到工作区保留硬件设备定义电路并覆盖原有算法电路,从而实现fpga功能的切换。
26.所述计算任务调度方法以部署的分布式存储系统(例如lustre/eos)为基础,在其之上开发额外的功能插件实现的。本发明针对部署于该硬件上的文件系统开发了专用插件,兼容标准硬件访问协议,作用是将本地主机或者网络主机上计算任务卸载到可计算存储设备。在用户发出一条存储系统指令时,指令生效前,所述插件会检查该指令是否包含调用可计算存储设备计算资源的特殊标志符号,如果包含则首先通过硬件计算能力调用方法加载用户指定计算方法到同一设备的cpu/soc或者fpga,若涉及fpga还会对其启用部分重配置;在硬件计算算法加载完成后,将存储在可计算存储设备中的目标文件发送到同一设备的fpga或者cpu/soc完成所需计算任务,最后将结果发送给用户客户端。例如在一台可计算存储设备中的linux系统中打开一个文件时在指令末尾添加“&css_alg”特殊标志符号和
调用算法参数即表示调用该设备上的硬件功能。具体来说:指令:cat runid.txt&css_alg=sort表示打开runid.txt文件并使用cpu/soc或者fpga硬件加速排序后再将结果发送到客户端供用户使用。
27.与现有技术相比,本发明具有以下的优点:
28.1)应用方式灵活
29.所述设备既可以作为普通的存储节点使用,也可以安装可计算存储软件,实现软硬一体化的存储设备。作为可计算存储设备时,可以基于存储系统posix等接口对外提供数据存储服务,同时还可以通过对posix接口附加特殊的参数选项支持计算任务,调用存储节点上fpga、cpu soc硬件能力实现“近存储”数据处理,避免数据搬运。
30.2)充分利用存储节点上arm、fpga等硬件功能
31.arm是一种应用广泛的精简指令集(risc)架构,基于arm的cpu在智能手机、笔记本电脑、平板电脑、嵌入式系统等方面得到了广泛的应用。与intel的x86架构相比,它具有体积小、功耗低、成本低等特点。这些特性使arm在需要大量电力成本的高性能计算领域具有一定的优势。而fpga由逻辑单元、ram、加法器等底层硬件资源组成,其特性支持开发者将这些硬件资源合理组织,以实现乘法器、寄存器、地址发生器等硬件电路,并且fpga可以无限地重新编程,加载一个新的设计方案只需几百毫秒,利用重配置可以减少硬件的开销。本发明充分利用存储节点上arm cpu soc功能、fpga等硬件特性,将数据密集型计算任务卸载到存储节点实现“近存储”执行,支持硬件级数据压缩、纠删码、图像差分存储等功能,实现可编程、可计算存储设备;
32.3)存储密度高
33.本发明进一步扩展一颗arm cpu的能力,使其可以连接多达12块3.5寸sata硬盘的能力,比传统的2u 12盘位存储服务器密度提高一倍;
34.4)整机系统功耗低,绿色节能
35.本发明采用的核心器件arm与fpga芯片在同功能类型的产品中均具有低功耗特性。基于arm cpu和fpga计算部件,整机系统功耗低,绿色节能;
36.5)解决实际应用中资源浪费问题
37.现代的服务器的芯片一般都有很多个处理核心,其单核心计算能力和总计算能力都很高。而作为分布式存储系统的存储节点,其存储进程比如eos分布式文件系统的fst进程能够使用的cpu处理能力有限,大部分核心的计算能力并没有得到充分利用,造成了资源的浪费。而本发明针对高能物理海量存储系统基于可计算存储设计理念,利用存储节点空闲的cpu资源以及更加高效的fpga计算资源,实现了一定的数据处理功能,有效提高了存储节点的使用效率。解决了传统高能物理计算环境中存储服务器功耗高、密度低、cpu资源闲置等问题。
38.6)可扩展性强
39.本专利提供的一种可编程可计算存储设备及应用方法,应用领域并不局限于高能物理,具有普适性,其计算功能也不局限于数据压缩、数据冗余、校验等算法,还可以按用户需求编写可动态加载的插件加入到现有存储系统中,从而调用不同的计算模块,具有非常好的可扩展性。
附图说明
40.图1为基于arm和fpga的高能物理可计算存储设备的总体结构框图。
41.图2为基于arm和fpga的高能物理可计算存储设备的主控模块框图。
42.图3为基于arm和fpga的高能物理可计算存储设备的扩展模块框图。
43.图4为基于arm和fpga的高能物理可计算存储设备的硬盘接入框图。
44.图5为基于arm和fpga的高能物理可计算存储设备的应用方法框架。
具体实施方式
45.下面结合附图和实施例对本发明进行详细说明。
46.本发明提供一种基于arm和fpga的高能物理可计算存储设备及应用方法,可计算存储设备在一个1u高度的机箱内主要包括:主控模块、扩展模块和硬盘接入模块。主控模块通过pcie连接器(高速串行总线连接器)与扩展模块连接,扩展模块通过sff-8643(小型光纤连接器-8643)接口与硬盘接入模块连接。基于该可计算存储设备应用方法通过调用接口、硬件设计、开发应用库和算法库实现功能。
47.基于arm和fpga的高能物理可计算存储设备的总体结构框图如图1所示。
48.下面对各个模块进行详细介绍。
49.如图2所示,主控模块主要包含:一颗arm cpu;两个主内存ddr4(第四代内存)插槽,具体型号为:288pin直立插式内存插槽,72bit数据总线,支持ecc(纠错码);nor flash(闪存)通过qspi并行接口(队列串行外设并行接口),容量大于8m,保存系统boot代码;sd(安全数字存储卡)可插拔设计,容量不小于32g;2*usb(通用串行总线)接口;2个万兆以太网网卡;2个千兆以太网网卡;支持jtag(联合测试工作组)调试,提升生产线调测效率。
50.主控模块的主要功能包含对系统整体管理和控制逻辑,即:整体系统的电源管理、主控系统自身的各种二次电源的调制产生(如1.0v vcc core,1.8v spi vcc,1.2v ddr4 interface vcc,0.6vddr4 vtt source等)、上电复位电路(por,支持cpu和外围器件的上电时序控制)、单个单元的复位逻辑(支持对单个外围器件和整体系统的单独复位)。相对传统存储设备而言,独特之处在于实现了arm芯片对传入数据的预分析以及对fpga功能调用的在线控制。当有数据传入设备时,arm首先会根据文件名称或者文件扩展属性分析是否调用fpga功能(压缩、排序等),确认调用目标算法后,arm会将预先存储在flash中的算法数据bit stream经过高速串行总线发送到扩展模块的fpga。
51.如图3所示,扩展模块主要包括:1块fgpa芯片,pcie与sataiii接口转换模块;sff-8643接口。pcie与sataiii接口转换模块的功能是:将2路pcie.3对应的高速串行接口进行转换,每组pcie.3x2对应接口转换成5个sata iii接口,再通过多端口扩展,将其中四个sata iii接口扩展成12个sataiii接口。数据经过pcie总线流入后,经该模块转换从sataiii接口流出,最后通过小型光纤连接器-8643接口与硬盘扩展卡互连;同时,扩展模块集成fpga芯片,实现板载fpga芯片与主控模块通过pcie与arm cpu的直接连接。整个fpga的逻辑在线调试采用jtag接口通过逻辑仿真器的方式实现,在实际应用中,fpga的逻辑电路通过板载的器件实现。
52.扩展模块是本发明有别于其他传统存储服务器设备的主要部分,发明利用fpga芯片的特性,可以在cpu之外提供额外的计算能力,一种应用方式是利用fpga芯片对一些常用
算法或者专用算法进行硬件加速,开发设计了压缩、解压缩、纠删码等通用算法以及decode、机器学习模型等专用算法的fpga电路。此外基于扩展模块实现了fpga在线部分重配置,可以在不影响系统使用的情况下对fpga无限重新编程,快速将其重置为一个新的设备。具体来说,在扩展模块接收到主控模块发送的指令后,会根据指令内容在硬盘中查找目标算法,目标算法以bit stream的形式通过pcie总线发送到fpga,fpga会根据bit stream的前端校验位判断其属于算法配置数据流还是待处理数据流,算法配置数据流会通过单独的一条pcie加载到fpga中的设定区域,通过软复位的方式对fpga电路进行部分重配置,替换部分原有的fpga电路从而实现fpga在线编程以及功能算法切换,算法运行结果根据算法内部的定义发送到主控模块并转发到客户端进行展示或者发送到硬盘接入模块进行存储,不会在fpga中停留。
53.如图4所示,硬盘接入模块实现12块3.5寸硬盘的接入,硬盘通过标准的22pin sata连接器与硬盘接入板互联。12块硬盘分成3排,每排4块硬盘,两列硬盘之间的间距是4mm,两行硬盘之间的间距22mm。全部硬盘支持热插拔,每块硬盘通过导光柱连接到面板显示状态。
54.如图5所示,基于该可计算存储设备的应用方法技术架构框图。底层为可计算存储设备硬件提供应用资源基础,中间层为可计算存储设备应用方法,顶层为应用的调用模式。可计算存储设备应用方法包括硬件计算能力调用方法、fpga部分重配置方法以及计算任务调度方法。
55.其中硬件计算能力调用方法的实施方式通过设计硬件电路控制方式实现。涉及硬件调用的用户指令从应用和存储服务发出,cpu解析元数据获取其中的计算任务并识别采用何种方式进行硬件加速,若调用cpu/soc则会首先遍历开发的算法库,然后通过驱动统一接口发送指令到加速器驱动子系统,调用bios子系统初始化芯片加速子系统后,通过寄存器操作完成对应用的加速;若调用fpga进行硬件加速计算,则会首先遍历本发明开发并存储在flash中存储的fpga算法电路库,包含算法电路如压缩、解压缩、纠删码等通用算法以及decode、机器学习模型等专用算法,然后以bit stream的形式通过内部总线将算法电路写入扩展模块上的fpga,使用fpga部分重配置方法更换其内部电路。为了区分算法电路数据和用户的存储数据,本发明为算法电路数据bit stream分配一条单独的pcie并且校验输入数据类型,用户的存储数据将会以bit stream的形式通过另一条pcie总线流入fpga进行运算后流出到存储设备,不会在fpga中停留。
56.其中fpga部分重配置方法的实施方式通过指令触发和硬件电路控制方式实现。在设备上电时,fpga会首先加载预先烧写的工作电路,本发明通过开发一个专用的驱动模块使其在操作系统中显示为一个硬件设备便于调用。当系统或用户指令触发调用fpga功能时,cpu首先从flash中获取目标功能算法电路,该电路以bit stream的形式由pcie总线发送到fpga,fpga对其校验判别为算法数据流后会将其加载到工作区保留硬件设备定义电路并覆盖原有算法电路,从而实现fpga功能的切换。
57.其中计算任务调度方法的实施方式通过程序及软件开发方式实现,包括专用插件开发、硬件加速算法的移植和开发,通用或专用算法基于fpga的电路设计和开发。本发明针对部署于该硬件上的文件系统开发了专用插件,兼容标准硬件访问协议,作用是将本地主机或者网络主机上计算任务卸载到可计算存储设备。在用户发出一条存储系统指令时,指
令生效前,所述插件会检查该指令是否包含调用可计算存储设备计算资源的特殊标志符号,如果包含则首先通过硬件计算能力调用方法加载用户指定计算方法到同一设备的cpu/soc或者fpga,若涉及fpga还会对其启用部分重配置;在硬件计算算法加载完成后,将存储在可计算存储设备中的目标文件发送到同一设备的fpga或者cpu/soc完成所需计算任务,最后将结果发送给用户客户端。
58.本技术并不局限于本发明详细记载的实施例,本领域技术人员可以对此做出各种修改,但是只要这些修改不背离本发明的精神和意图,仍在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献