CN110209399B - Fpga服务系统、数据处理方法及存储介质 - Google Patents

Fpga服务系统、数据处理方法及存储介质 Download PDF

Info

Publication number
CN110209399B
CN110209399B CN201811150228.3A CN201811150228A CN110209399B CN 110209399 B CN110209399 B CN 110209399B CN 201811150228 A CN201811150228 A CN 201811150228A CN 110209399 B CN110209399 B CN 110209399B
Authority
CN
China
Prior art keywords
fpga
bus
service system
interface
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811150228.3A
Other languages
English (en)
Other versions
CN110209399A (zh
Inventor
李嘉昕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201811150228.3A priority Critical patent/CN110209399B/zh
Publication of CN110209399A publication Critical patent/CN110209399A/zh
Application granted granted Critical
Publication of CN110209399B publication Critical patent/CN110209399B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本申请提供了一种FPGA服务系统、数据处理方法及存储介质,通过设置对外通用的第一总线接口,无论FPGA服务系统部署在什么类型的FPGA平台,用户直接将设计的实现某业务的功能硬件连接到该第一总线接口,FPGA服务系统的通信控制设备就能够保证该功能硬件可靠工作,以使FPGA服务系统能够可靠地对外提供该业务服务,不需要用户针对不同类型的FPGA平台,设计实现同一业务的多个功能硬件,减少了FPGA服务系统在各FPGA平台移植的成本及花费的时间精力,且提高了业务开发灵活性及效率。

Description

FPGA服务系统、数据处理方法及存储介质
技术领域
本申请主要涉及云服务应用领域,更具体地说是涉及一种FPGA服务系统、数据处理方法及存储介质。
背景技术
FPGA(Field-Programmable Gate Array,现场可编程门阵列)是在可编程器件的基础上进一步发展的产物,通常作为专用集成电路(Application Specific IntegratedCircuit,ASIC)领域中的一种半定制电路而出现,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
目前,FPGA芯片厂商为了缩短用户的开发时间,会给用户提供不同功能 IP核(Intellectual Property core,知识产权核),方便用户根据功能设计需求直接选择相应功能的IP核进行集成,提高了用户设计效率。然而,各FPGA芯片厂商生产的IP核所遵循的片内总线标准(即总线协议)并不统一,IP核的接口和时序也存在很大差异,导致用户在FPGA平台上搭建实现某业务的功能硬件过程中,在芯片选取及软硬件设计上都受到很大约束。
且,当用户希望将针对FPGA平台A设计的实现某业务的功能硬件,应用到FPGA平台B工作,由于FPGA平台A和FPGA平台B的通信协议不同,用户需要花费大量时间和精力,对已有的功能硬件及FPGA平台B的软硬件进行修改,还需要进行仿真及验证等一系列工作,移植代价高,效率很低。
发明内容
有鉴于此,本申请提供了一种FPGA服务系统、数据处理方法及存储介质,提供对外通用的第一数据总线供用户连接功能硬件,利用通信控制设备保证 FPGA服务系统移植到各FPGA平台后,功能硬件无需重新设计就能够与驱动设备正常通信,使FPGA服务系统对外提供可靠业务服务,减少了用户移植的时间以及开发成本,提高了开发效率。
为了实现上述目的,本申请提供了以下技术方案:
本实施例提供了一种FPGA服务系统,所述系统包括;
连接驱动设备的通信接口;
连接所述FPGA服务系统的片内总线的第一总线接口,所述第一总线接口连接功能硬件;
分别连接所述通信接口和所述第一总线接口的通信控制设备,当FPGA 平台的总线协议与所述片内总线的通信协议不同,所述通信控制设备控制实现所述通信接口与所述第一总线接口之间数据通信;
其中,所述FPGA平台上部署所述FPGA服务系统。
本实施例还提供了一种数据处理方法,应用于如上述所述的FPGA服务系统,所述FPGA服务系统部署在FPGA平台上,所述方法包括:
检测所述FPGA服务系统的片内总线的总线协议与所述FPGA平台的总线协议不同;
对所述FPGA服务系统的通信控制设备接收的数据进行处理,以使处理后的数据能够在所述通信控制设备的通信接口与第一总线接口之间传输。
本实施例还提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行,实现如上所述的数据处理方法的各个步骤。
由此可见,与现有技术相比,本实施例提供的FPGA服务系统,设置了对外通用的第一总线接口,无论FPGA服务系统部署在什么类型的FPGA平台,用户直接将设计的实现某业务的功能硬件连接到该第一总线接口,FPGA 服务系统的通信控制设备就能够保证该功能硬件可靠工作,以使FPGA服务系统能够可靠地对外提供该业务服务,不需要用户针对不同类型的FPGA平台,设计实现同一业务的多个功能硬件,减少了FPGA服务系统在各FPGA 平台移植的成本及花费的时间精力,且提高了业务开发灵活性及效率
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1a为现有的一种适用于FPGA平台A的FPGA服务系统结构示意图;
图1b为现有的一种适用于FPGA平台B的FPGA服务系统结构示意图;
图2a为现有的另一种适用于FPGA平台A的FPGA服务系统结构示意图;
图2b为现有的另一种适用于FPGA平台B的FPGA服务系统结构示意图;
图3为本申请提供的适用于任意FPGA平台的FPGA服务系统的应用示意图;
图4为本申请一实施例提供的FPGA服务系统的结构示意图;
图5为本申请另一实施例提供的FPGA服务系统的结构示意图;
图6为本申请又一实施例提供的FPGA服务系统的结构示意图;
图7为本申请又一实施例提供的FPGA服务系统的结构示意图;
图8为本申请又一实施例提供的FPGA服务系统的结构示意图;
图9a为本申请提供的一种FPGA服务系统的总线转换模块的结构示意图;
图9b为本申请提供的一种FPGA服务系统的总线转换模块的另一种结构示意图;
图10为本申请又一实施例提供的FPGA服务系统的结构示意图;
图11为本申请又一实施例提供的FPGA服务系统的结构示意图;
图12为本申请又一实施例提供的FPGA服务系统的结构示意图;
图13为本申请提供的一种FPGA服务系统的应用场景示意图;
图14为本申请一实施例提供的一种FPGA服务器的结构示意图;
图15为本申请提供的一种FPGA服务器的应用场景示意图;
图16为本申请一实施例提供的一种业务生成方法的应用场景流程示意图;
图17为本申请一实施例提供的数据处理方法的流程示意图;
图18为本申请另一实施例提供的数据处理方法的流程示意图;
图19为本申请又一实施例提供的数据处理方法的流程示意图;
图20为本申请一实施例提供的数据处理方法的应用场景流程示意图。
具体实施方式
目前,市面上的FPGA(Field-Programmable Gate Array,现场可编程门阵列)芯片的生产厂商多种多样,这些FPGA芯片厂商所生成的硬件平台所采用的总线协议并不统一,这就导致用户使用不同FPGA芯片厂商生产的IP (Intellectual Property core,知识产权核)核进行FPGA设计时,必须实现相应类型数据总线的总线接口设计。
参照图1a和图1b,若用户在Intel的FPGA平台(如图1a所示的FPGA平台A) 上进行设计,由于Intel通常采用CCI(Core Cache Interface)-P总线标准生产 IP核,用户需使用这类IP核在该FPGA平台上搭建,对应开发业务的功能硬件,并实现CCI-P总线接口的设计,如图2a所示;若用户在Xilinx的FPGA平台(如图1b所示的FPGA平台B)上进行设计,同理,由于Xilinx通常采用AXI (Advanced eXtensible Interface)总线协议生产IP核,用户需使用这类IP核搭建功能硬件,并实现AXI总线接口的设计,如图2b所示,受不同总线协议在通信时的约束,此时无法直接将在FPGA平台A上搭建的功能硬件直接移植到 FPGA平台B上。
具体的,在实际应用中,对于按照不同总线协议生产的IP核,在接口和时序上存在比较大的差异,导致使用IP核搭建的功能硬件以及FPGA服务系统,从FPGA平台A移植到FPGA平台B过程非常麻烦,往往需要用户针对FPGA平台B重新设计该功能硬件以及FPGA服务系统,极大增加了移植时间和开发成本。
其中,移植过程涉及到的硬件开发与软件开发不同的是,其重新修改总线接口就意味着需要重新设计接口,并调整系统结构去适配新的总线带宽和时序模型(基于FPGA平台B所使用的总线确定),这里面涉及到系统架构,逻辑设计、仿真和验证等一系列的工作,工作量非常庞大。
而且,由于FPGA的设计是精确到时钟周期的,且每个时钟周期不同的模块并发的完成不同的操作,在对功能硬件修改以适用FPGA平台B时,还会涉及到从上层的系统层到底层的硬件时序的修改,这需要用户花费大量时间和精力在跨平台移植上,这为跨平台移植用户FPGA设计带来很大难度,且移植效率非常低。
为了改善上述问题,参照图3,本申请的发明人希望得到一种新的FPGA 服务系统,能够实现功能硬件在不同FPGA芯片厂商的FPGA平台上的快速、低成本地移植。基于此,本申请的发明人提出在FPGA服务系统中配置一通用的总线接口,即适用于遵循各总线协议的FPGA平台,这样,用户只需要按照该通用的总线接口的总线协议,设计实现业务的功能硬件,就能够确保该功能硬件能够适用于遵循各总线协议的FPGA平台,大大降低了FPGA服务系统及功能硬件在不同FPGA平台上进行移植花费的时间、精力和成本。
基于上述发明人提供的核心思想,本申请实施例的实际应用中,用户不需要针对每一种FPGA平台分别设计对应的功能硬件及FPGA服务系统,甚至不用关心申请的FPGA云服务器当前使用的是什么类型的FPGA平台,直接遵循通用总线接口的总线协议搭建功能硬件,并与FPGA服务系统的通用总线接口(本申请可以将其记为第一总线接口)连接,即可保证用户开发设计的功能硬件的可靠工作,结合该FPGA服务系统的软硬件部分,正常对外提供相应的业务应用,极大节省了功能硬件以及FPGA服务系统在不同FPGA平台上进行移植上的花费及精力,提高了开发效率。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图4,为本实施例公开的一种FPGA服务系统的结构示意图,其硬件架构可以包括但并不局限于以下各部分:
连接驱动设备10的通信接口20;
本实施例中,该驱动设备10可以是主机等,其通常包含有驱动器以及存储软件应用程序的存储器等部件,以实现对用户开发的实现某业务的功能硬件的软件部分,本实施例对实现该业务的软件开发过程不做详述。
可选的,该通信接口20可以包括PCIe(Peripheral Component Interconnectexpress)接口,用来实现与驱动设备的连接(具体可以是实现FPGA服务系统与驱动器的连通)。本实施例实际应用中,该PCIe接口可以是插拔接口,也就是说,FPGA服务系统可以通过插拔方式与驱动设备连接,但该通信接口20与驱动设备的连接方式并不局限于这种插拔方式。
进一步地,本实施例提供的通信接口20还可以包括至少一个扩展接口,如网络接口、高速串口,低速串口和并口等可调整或扩展的接口,或者是具有其他通信功能的接口等(图4并未一一示出),本实施例在此不作一一列举,可以根据所要连接的外部设备的类型及通信方式等确定。
其中,网络接口可以用来实现FPGA服务系统与其他计算机的网络通讯,FPGA服务系统可以设置至少一类型的网络接口,以实现与具有不同型号的网络接口的计算机设备的连接,提高FPGA服务系统与外部设备的网络连接的灵活性。
在实际应用中,FPGA云服务器中可以包括一个或多个FPGA服务系统,对于包含这种一机多卡模式的FPGA云服务器,其FPGA服务系统的通信接口通常包括高速串口,用来与其他FPGA服务系统的FPGA板卡进行数据通讯,实现FPGA云服务器中的各FPGA服务系统之间的高速通讯。
低速串口和并口主要用来实现FPGA服务系统的调试和监控,或者是与 FPGA服务系统设置的FPGA板卡上的芯片进行数据通讯,具体实现过程本实施例不做详述,且各通信接口的功能应用并不局限于上文描述的场景。
可选的,本实施例提供的FPGA服务系统可以设置一个外壳,通信接口 20可以设置在壳体外,方便用户直观看到各通信接口的形态,以便将外部设备与其向匹配的通信接口连接,本实施例对各通信接口在壳体外的设置位置不作限定。
由此可见,本实施例的通信接口20可以是FPGA服务系统与外部设备连接的桥梁,开发人员可以根据实际开发需求,确定通信接口20包含的接口数量及类型,并不局限于上文列举的内容。
连接该FPGA服务系统的片内总线的第一总线接口30,该第一总线接口连接有功能硬件40;
对于信号传输的总线技术,根据不同的依据可以有不同的分类标准,如按照总线的计算机系统的不同层次位置上分类,总线可以分为片内总线、片间总线、系统总线及通信总线。
其中,片内总线是集成芯片内部,用于连接各功能单元电路的信息通路,属于电路级的互连,本实施例是指搭建FPGA服务系统所用FPGA主板上,实现该系统各组成部分信息互连的总线。片间总线是微处理器与各外围芯片 (如存储器、I/O接口)之间通信的总线,如STD、ISA(Industry Standard Architecture,工业标准体系结构)、PCI、PCI-Express等,属于芯片级的总线。通信总线(即外部总线)是计算机之间或计算机与外部设备之间通信的总线,如RS232、RS485、USB等,属于设备级的互连。
可见,本实施例FPGA服务系统的通信接口与驱动设备的连接,具体如 PCIe(即PCI-Express)接口,可以通过PCIe总线实现,而该FPGA服务系统中各组成部分之间的通信通过片内总线实现,本实施例对片内总线的布局不做限定,可以根据FPGA服务系统的具体组成结构确定。
第一总线接口30即为FPGA服务系统的片内总线的总线接口,其遵循的总线协议与该片内总线协议一致,且该FPGA服务系统的各组成部分可以通过该第一总线接口进行数据交互,因此,该第一总线接口30的数量通常为多个,本实施例对该第一总线接口30的具体数量不做限定。
需要说明的是,本实施例的第一总线接口30可以是在不同FPGA平台使用的通用总线接口,即部署在不同的FPGA平台,可以不用重新设计该第一总线接口,用户设计的功能硬件可以直接连接该第一总线接口30,不需要针对不同的FPGA平台,设计实现同一业务的适配该FPGA平台的功能硬件,即实现了功能硬件在不同FPGA平台上的移植。
可选的,在实际应用中,可以选择目前大部分FPGA平台使用的数据总线,作为设计FPGA服务系统的片内总线,并设计遵循相应总线协议的第一总线接口,比如,上述片内总线可以是AXI总线,第一总线接口可以是AXI 总线接口,但并不局限于此。
如上述分析,上述功能硬件40是采用第一总线接口遵循的总线标准搭建而成,也就是说,第一总线接口30和功能硬件40遵循的总线协议相同,保证了用户设计的功能硬件能够直接连接第一总线接口30,就能够可靠通信。
在实际应用中,用户登录云服务平台进行业务开发申请,云服务平台可以为该用户分配一FPGA云服务器,以供用户基于该FPGA云服务器完成业务开发,得到能够对外提供该业务应用的FPGA云服务器,因此,在用户进行业务开发时,作为硬件开发部分,可以自定义搭建实现该业务应用的功能硬件,具体搭建过程不做限定,可以基于用户申请的业务应用功能确定。
需要说明,针对不同业务应用,自定义搭建的功能硬件40的硬件结构通常是不同,但都需要按照第一总线接口的总线标准(即遵循FPGA服务系统的片内总线的总线协议)进行搭建,以保证各功能硬件能够直接连接FPGA 服务系统的第一总线接口实现数据交互。
可选的,当功能硬件40的数量是多个,多个功能硬件可以连接不同第一总线接口,以实现至少一个业务应用。也就是说,在实际应用中,对于同一 FPGA服务系统,可以由多个用户,针对同一或不同业务应用,自定义搭建相应的一个或多个功能硬件,即多个用户可以登录FPGA云服务平台,申请开发业务应用时,平台系统可能会给多个用户分配同一FPGA云服务器,从而使该FPGA云服务器能够对外提供多个用户开发的各种业务应用。
其中,当第一总线接口的数量为多个时,可以将暂时空闲的第一总线接口作为扩展接口使用,即在满足FPGA服务系统中各功能模块的基本通信需求外,本实施例还可以对第一总线接口留出裕量,这样,当FPGA服务系统开发者对当前FPGA服务系统进行功能扩展时,可以将扩展的功能模块与这些空闲的第一总线接口连接,以使扩展的功能模块能够与其他功能模块配合,实现扩展功能。可见,本实施例通过设置多个第一总线接口,提高了FPGA 服务系统的可扩展性。
分别连接通信接口20和第一总线接口30的通信控制设备50,当FPGA 平台的总线协议与该FPGA服务系统的片内总线的总线协议不同,通信控制设备50可以控制实现通信接口20与第一总线接口30之间数据通信;
参照上图4,该通信控制设备50可以包括该功能硬件40实现业务的硬件部分,而驱动设备可以包括该功能硬件实现业务的软件部分,通过软硬件的配合,保证用户开发业务的正常工作,为其他用户提供可靠的业务服务。
结合上文描述,本实施例的通信控制设备50作为FPGA服务系统的主要组成部分,其可以包括实现通信接口与第一总线接口之间传输的数据的处理,保证驱动设备传输的数据,能够被功能硬件可靠读取,同理,功能硬件传输的数据,也能够被通信接口可靠读取,本实施例对如何实现这两个接口之间传输的数据处理方法不做限定。
其中,FPGA服务系统设计完成后,其片内总线通常将固定,第一总线接口遵循的总线协议也是确定的。但由于本实施例的FPGA服务系统需要部署在FPGA平台上功能,FPGA平台作为搭建FPGA服务系统的硬件平台,其通常也是由多个部件组成,如FPGA板卡、各种FPGA芯片等,而不同FPGA 芯片开发商生产的FPGA平台的类型不同,其采用的数据总线类型不统一,如AXI总线、CCI-P总线,使得各类FPGA平台的总线协议与FPGA服务系统的片内总线的总线协议并不会总相同。
在数据通信过程中,若传输数据的总线协议不同,两个总线传输的数据往往不能直接被对方总线读取,即遵循不同总线协议的两个总线之间无法实现数据传输,发明人考虑到这一情况,提出在通信控制设备中设计总线转换模块,用来实现遵循不同总线协议的两个数据总线之间的数据通信,具体实现过程可以参照下文相应实施例的描述,本实施例在此不做详述。
基于此,在本实施例实际应用中,若FPGA服务系统所在的FPGA平台的总线协议与该FPGA服务系统的片内总线相同,通信控制设备50可以不对 FPGA平台与FPGA服务系统传输的数据进行转换处理,这两者之间可以正常进行通信。
若该FPGA平台的总线协议与该FPGA服务系统的片内总线不同,该通信控制设备50就需要对这两者之间传输的数据进行转换处理,以实现通信接口20与第一总线接口30之间的数据通信,保证其他用户发起的访问请求数据能够经过该FPGA服务系统,可靠传送至相应业务的功能硬件,同时该功能硬件反馈的数据,也能够可靠被发送至驱动设备,以执行相应阮软件程序。
综上,本实施例提供的FPGA服务系统,设置了对外通用的第一总线接口,无论FPGA服务系统部署在什么类型的FPGA平台,用户只需要按照第一总线接口的总线协议,设计实现各业务的功能硬件,并连接该第一总线接口,FPGA服务系统的通信控制设备就能够保证该功能硬件可靠工作,对外提供该功能硬件对应的业务服务,不需要用户针对不同类型的FPGA平台,设计实现同一业务的多个功能硬件,降低了FPGA服务系统在各FPGA平台移植的成本,且提高了业务开发灵活性及效率。
可选的,在本实施例实际应用中,对于上述通信控制设备中需要连接第一总线接口的各功能模块,可以根据实际通信需求,对第一总线接口进行细化,如AXI总线接口,可以细分为AXI-4总线接口、AXI-Lite总线接口等等,各功能模块可以根据细化后的第一总线接口的特点及自身通信需求,选择合适的第一总线接口连接,提高数据传输效率,本申请对第一总线接口的细化方式及类型不做限定。
作为本申请提供的一可选实施例,在上述实施例公开的FPGA服务系统的组成结构基础上,如图5所示的系统结构示意图,该系统还可以包括:连接通信控制设备50的中断接口60,该中断接口60可以连接功能硬件40,接收功能硬件40发起的中断请求,并将得到的相应中断响应反馈至功能硬件 40。
在本实施例中,对于用户设计的业务应用的功能硬件,在其对应的应用程序运行过程中,通常会存在中断,具体可以由该功能硬件40发起中断请求,通过中断接口发送至通信控制设备50进行处理。因此,该通信控制设备50 可以包括中断模块,以使中断接口60设置在该中断模块中。当然,中断接口接收到的中断请求,也可以通过通信接口发送至驱动设备或其他设备进行处理,并不局限于通信控制设备响应中断请求,本实施例对中断处理的实现方法不做限定。
例如,用户在完成某个特定功能后,可以采用中断方式,通知主机中的应用程序当前操作已完成,因此,功能硬件可以生成中断请求并发送至通信控制设备,由通信控制设备通过通信接口20(如PCIe接口)发送至主机中的驱动器,以控制相应应用程序执行中断处理程序,之后,再将得到的中断响应反馈至该功能硬件。
或者,当通信控制设备(具体可以使其包含的中断模块)接收到中断请求后,直接对中断请求进行处理,得到中断响应,尤其是在该业务应用对应设置有多个功能硬件的情况,为了提高中断处理效率,本实施例可以由通信控制设备对各功能硬件发起的中断请求进行顺次处理,可以将最后生成中断请求发送至相应的应用程序进行处理,但并不局限于本实施例描述的中断处理方法,本实施例对通信控制设备实现中断处理的具体硬件结构不做限定。
可见,本实施例提供的FPGA服务系统可以提供通用的第一总线接口及中断接口,供用户设计的实现不同业务的功能硬件连接,保证了该业务工作的中断需求及其他通信需求。
本申请还提供的一可选实施例,如图6所示的FPGA服务系统的结构示意图,在上述各实施例描述的系统结构的基础上,本实施例提供的FPGA服务系统的通信控制设备还可以包括外设处理模块70,该外设处理模块70中设置有通信接口20及第二总线接口,且该通信接口20通过第二总线接口与第一总线接口30连接,且第二总线接口的总线协议与FPGA平台的总线协议一致。
需要说明,图6仅示出本实施例提出的外设处理模块70与上述图5所示的实施例组合后的结构示意图,该外设处理模块70还可以与图4所示的实施例组合,组合后的系统结构可以参照图6示出的相应部分的结构,本申请对这种组合结构不再详述。
基于上文描述的外设处理模块70在通信控制设备中的布局可知,本实施例的外设处理模块70可以认为是FPGA服务系统与外部设备(如上述驱动设备,或其他计算机设备等)进行通讯的桥梁,结合上述其中设置的通信接口 20的描述,可以根据实际通讯需求,以及所连接的外部设备的接口形状,在通信接口布置多个不同形状的接口,且每一形状的接口也可以设置多个,本实施例对此不做限定。
结合上文描述,FPGA服务系统是部署在FPGA平台上工作,对外提供该 FPGA服务系统具有的业务服务。在本实施例中,FPGA服务系统可以通过第二总线接口与FPGA平台进行通信,即在FPGA服务系统的外设处理模块70 中设置一个总线接口记为第二总线接口,并使该第二总线接口一端连接FPGA 平台的总线,另一端连接FPGA服务系统中的第一总线接口,以使第一总线接口通过该第二总线接口,实现与FPGA平台之间的数据交互。
可见,第二总线接口可以是FPGA服务系统内部设备与FPGA平台进行通信的桥梁,通常情况下,该第二总线接口遵循的总线协议与FPGA平台的总线协议一致,以保证该第二总线接口能够可靠读取FPGA平台传输的数据。
可选的,第二总线接口的数量可以是多个,且各第二总线接口遵循的总线协议可以不同,以使FPGA服务系统能够包括适配各种FPGA平台的总线协议的第二总线接口,这样,在将FPGA服务系统移植到其他类型的FPGA 平台后,利用FPGA服务系统中遵循相应总线类型的第二总线接口,实现该 FPGA服务系统与FPGA平台之间的连接。本实施例对该第二总线接口的数量及遵循的总线协议不做限定,可以结合市场调查确定。
可选的,外设处理模块70还可以包括多个知识产权核(即IP核),这多个知识产权核可以包括PCIe硬核,内存控制器(如DMA(Direct Memory Access,直接内存存取控制器)以及flash控制器、DDR(Double Data Rate,双倍速率同步动态随机存储器)控制器等。
在本实施例实际应用中,外设处理模块70中上述IP核作为FPGA服务系统实现数据通讯的重要组成部分,在该系统进行数据通讯过程中,这些组成部分通常是处于工作状态,下文不再说明,且各组成部分的数据通讯内容包括但并不局限于下文描述的方式:
DDR控制器可以与FPGA服务系统设置的FPGA平台上的DDR芯片(如 FPGA板卡上的DDR芯片颗粒或者主板上的DDR存储芯片)进行数据通讯; PCIe硬核可以与其他PCIe硬核以及主机进行数据通讯,具体的数据通讯过程本实施例在此不作详述。而Flash控制器可以与FPGA服务系统的Flash芯片进行数据通讯,用来实现固件程序的升级、更新或恢复出厂设计等等。
本申请还提供的一可选实施例,如图7所示的FPGA服务系统的结构示意图,在上述各实施例的基础上,上述通信控制设备还可以包括:设置有多个第一总线接口20,按照FPGA服务系统的片内总线的总线协议,对连接不同第一总线接口20的各模块进行调度与仲裁的总线仲裁模块80。需要说明,图7示出的仅是本实施例提出的总线仲裁模块80与上述图6所示的实施例组合后的系统结构,但本实施例提出的FPGA服务系统并不局限于图7所示的系统结构,还可以包括该总线仲裁模块与上述公开的其他实施例组合后的系统结构,具体可以参照图7示出的相应部分的结构,本申请在此不再一一详述。
基于上文描述的总线仲裁模块80与通信控制设备中的其他模块之间的连接关系可知,本实施例提供的FPGA服务系统的各组成部分的工作,可以由总线仲裁模块80控制实现,本实施例对总线仲裁模块80实现的具体功能内容不做限定,具体可以根据与其连接的各模块的结构及其功能,以及FPGA服务系统的业务应用的数据处理需求等因素确定。针对不同业务的功能硬件,该总线仲裁模块实现调度和仲裁的内容以及方式可以存在差异,具体实现方法不作详述。
其中,该总线仲裁模块80可以包括仲裁器等,该仲裁器中可以预先存储针对不同模块的调度与仲裁规则,以使仲裁器调用该规则,实现对相应各模块的调度与仲裁。需要说明,该总线仲裁模块80的组成并不局限于仲裁器,可以根据需要设定,本实施例在此不再一一列举。
如图7所示,FPGA服务系统中的各第一总线接口均可以设置在总线仲裁模块80上,以使该系统中的各模块通过不同的第一总线接口,与总线仲裁模块80连接,形成相应的数据通道,以便总线仲裁模块80通过相应的数据通道,实现对各模块的调度与仲裁。
需要说明,上述各可选实施例可以任意相互组合,得到具有不同模块组合的FPGA服务系统,且在各组合基础上,还可以合理增加其他模块,并不局限于图7所示的FPGA服务系统的组成结构,本申请在描述上述各可选实施例时,仅以图7为例来说明相应模块的连接方式,各可选实施例的系统结构可以参照图7所示相应模块与其他模块或接口的连接,本实施例并未一一示出。
另外,结合上述描述,本实施例可以根据通讯区域,将FPGA服务系统中存在的通讯方式分为外部通讯和内部通讯。其中,外部通讯主要涉及到 FPGA服务系统的外设处理模块与外部设备之间的通讯,而该FPGA服务系统的其他模块之间的通讯则为内部通讯,其可以包括FPGA服务系统与用户设计的功能硬件之间的通讯。
综上可知,本实施例提供的FPGA服务系统,设置了对外通用的第一总线接口,以及连接外部设备的通信接口,并将FPGA芯片厂商生产的不同系列的IP核实现和接口细节封装到系统内部,如上述DDR控制器、PCIe硬核等封装到外设处理模块,使得用户的设计能够快速集成,不需要再关心模块内部各组成的接口和时序的差异,提高了系统设计效率。
本申请还提供的一可选实施例,如图8所示的FPGA服务系统的结构示意图,在上述各实施例的基础上,上述通信控制设备还可以包括:分别连接第一总线接口30和第二总线接口90的总线转换模块100,当FPGA平台的总线协议与FPGA服务系统片内总线的总线协议不同,对接收到的数据进行处理,以使处理后的数据遵循接收该处理后的数据的总线接口的总线协议。
需要说明,本实施例的图8仅示出在上图7所示的系统结构基础上,进一步结合本实施例提出的总线转换模块100得到的FPGA服务系统的结构,但本实施例提出的结合该总线转换模块100后得到的FPGA服务系统的结构,并不局限于图8所示的结构示意图,还可以包括与上述其他实施例描述的系统组成结合后的结构,本申请在此不再一一详述。
如图8所示,由于FPGA平台遵循的总线协议与FPGA服务系统的总线协议并不一定相同,若两者不同,FPGA服务系统的硬件模块并不能在FPGA 平台上正常工作,需要对FPGA平台的数据总线和FPGA服务系统的数据总线之间传输的数据进行转换处理后,才能够被对方数据总线可靠识别,传输至对应的模块执行。
基于此,本实施例提出在通信控制设备中设置总线转换模块100,用来在 FPGA服务系统所在的FPGA平台的总线协议,与该系统的片内总线的总线协议不一致性的情况下,对第一总线接口30和第二总线接口90之间传输的数据进行转换处理,保证这两个总线接口之间传输的数据能够被对方可靠读取。本实施例对总线转换模块100如何对传输数据进行转换处理的实现方法不做限定,需要保证处理后的数据与接收该数据的总线接口的总线协议相匹配,保证FPGA服务系统部署在当前FPGA平台上能够可靠工作。
其中,关于上述FPGA平台的总线协议与FPGA服务系统的片内总线的总线协议不同,可以是指两者内部数据传输所使用的数据总线的总线信息不同,具体可以是数据位宽、时序、时钟频率等信息不同,本实施例可以通过检测这些信息或数据总线类型等方式,来确定FPGA平台的总线协议与FPGA 服务系统的片内总线的总线协议是否相同,但并不局限于这种检测方法,本实施例对数据总线的总线协议包含的信息内容不作限定。
应该理解,在本实施例实际应用中,若FPGA平台的总线协议与FPGA 服务系统的片内总线的总线协议相同,本实施例中的总线转换模块可以不参与工作,此时第一总线接口与第二总线接口遵从的总线协议相同,两个总线接口之间传输的数据无需处理可以直接发送给对方。当然,本申请也可以采用其他方式实现这两个总线接口之间的数据交互,如在这两个总线接口之间搭建其他数据传输通道,用于在这两个总线接口的总线协议相同时,触发其他数据传输通道进入工作状态;当这两个总线接口的总线协议不同时,触发该数据传输通道断开,以使总线转换模块进入工作状态,按照上述方式完成对接收数据的处理。
本实施例中,若将总线转换模块的工作模式分为直通模式和转换模块,其中,直通模式可以指该总线转换模块不参与转换处理工作,而是将两端连接的总线接口直连;转换模式可以是总线转换模块参与转换处理工作,即两端连接的总线接口传输的数据,需要进行转换处理后才能发送至对方总线接口。其中,若总线转换模块处于关闭状态表示其处于直通模式,当其处于工作状态可以表示其处于转换模式,因此,本实施例可以通过控制总线转换模块是否进入工作状态,来保证FPGA平台上部署的FPGA服务系统与驱动设备之间进行可靠数据交互,进而保证用户设计的功能硬件处理业务数据的可靠性。
由此可见,对于FPGA服务系统来说,当需要从当前FPGA平台移植到其他类型的FPGA平台,用户无需按照移植到的FPGA平台的总线协议,重新设计功能硬件及FPGA服务系统,即便新的FPGA平台的总线协议与FPGA 服务系统的片内总线的总线协议不一致,本实施例也能够利用FPGA服务系统中的总线转换模块,保证按照该片内总线的总线协议搭建的功能硬件,基于FPGA服务系统在新的FPGA平台上正常工作,与驱动设备进行正常数据交互,对外提供该功能硬件对应的业务服务。
所以说,本实施例提供的FPGA服务系统能够灵活适用于各种FPGA平台,且极大节省了FPGA服务系统及功能硬件进行FPGA平台移植的工作量和成本,提高了业务应用开发效率。
可选的,对于上图8所示的FPGA服务系统的结构示意图,本实施例提出了一种总线转换模块的具体结构,参照图9a和图9b,总线转换模块100可以包括至少一组总线转换电路,如图9b 所示,本实施例仅以一个总线转换电路为例进行说明,每一组总线转换电路可以至少包括:
连接多个第一总线接口30的第一数据接口101;
连接第二总线接口90的第二数据接口102;
分别连接第一数据接口101和第二数据接口102,当第二总线接口90与第一总线接口30的总线协议不同,对接收的数据进行处理,以使处理后的数据遵循接收该处理后的数据的总线接口的总线协议的数据处理电路103。
需要说明,如上文分析,由于第二总线接口90连接FPGA平台的数据总线,因此,该FPGA服务系统中与该第二总线接口90直接连接的数据总线,实际上与FPGA平台的数据总线的总线类型相同,即总线协议相同,为了区分FPGA服务系统的片内总线,本实施例可以将直接连接第二总线接口的数据总线记为外设数据总线,其总线协议始终可以与当前FPGA平台的总线协议一致。
在实际应用中,第一数据接口101和第二数据接口102均可以实现数据读写操作,但当两者对外连接的数据总线不同,即FPGA服务系统的片内总线与FPGA平台的数据总线不同,这两个数据接口进行数据读写操作时的属性参数往往不同,该属性参数可以基于所连接的数据总线的总线协议确定,如时钟频率、数据位宽等属性参数,本实施例对该属性参数包含的内容不作限定。
通常情况下,第一数据接口101可以包括数据发送接口和数据接收接口,第二数据接口102也可以包括读数据接口和写数据接口。数据发送接口可以用于向片内总线发送数据,数据接收接口可以用于读取该片内总线传输的数据;读数据接口可以用来读取外设数据总线传输的数据;写数据接口可以用来向外设数据总线写数据,从而通过第二总线接口发送至外设处理模块,进而发送至外部设备或硬盘平台上的其他装置等,具体可以根据所传输数据内容确定,本实施例对第二数据接口接收到数据后的处理过程,及其所接收到的数据来源不做限定。
可见,本实施例可以利用数据处理电路对接收到的数据进行处理,保证来自外部设备的数据能够被功能硬件识别,功能硬件传输至外部设备的数据,也能够可靠发送至外部设备,保证该功能硬件在与其遵循的总线协议不同的 FPGA平台上可靠运行,实现与外部设备的数据交互。
以外设数据总线传输的数据(如用户通过外部设备访问FPGA服务系统,向该FPGA服务系统发送数据的场景),通过第二总线接口发送至总线转换模块进行处理为例进行说明,本实施例可以对第二总线接口接收到的数据进行缓存,按照FPGA服务系统的片内总线的时钟频率提取缓存数据,并按照该片内总线的数据位宽,对提取的数据进行转换处理,使得到的待处理业务数据的数据带宽,能够符合该片内总线的总线协议要求,从而使FPGA服务系统的第一数据总线接口能够可靠接收到待处理业务数据,并发送至相应的功能硬件执行。对于该片内总线传输至总线转换模块的数据处理过程类似,即按照外设数据总线的时钟频率实现数据提取,并利用外设数据总线的数据位宽进行数据转换处理,具体实现过程不再详述。
当然,关于数据处理电路对接收到的数据的处理过程,并不局限于上文描述的方法,且根据FPGA服务系统的片内总线和外设数据总线的具体类型,数据处理电路实现的数据处理过程可以有所差异,可以根据这两个数据总线的具体总线协议内容进行确定。
需要说明,对于总线转换模块中的各总线转换电路实现不同数据总线的转换方法,并不局限于上文描述的是实现方法,通常情况下,对于不同的实现方法,对应的总线转换电路的电路结构可以不同,并不局限于图9a和图9b 所示的电路组成及其连接关系,可以根据采用的实现方式进行合理调整,本实施例在此不再一一详述。
其中,对于FPGA云服务提供者来说,所搭建的FPGA服务系统的片内总线,以及当前所在或可能移植的FPGA平台的数据总线都是已知的,因此, FPGA云服务提供者可以根据这两个数据总线,搭建相应的总线转换电路,如片内总线为AXI(Advanced eXtensibleInterface)数据总线,FPGA平台的数据总线即外设数据总线是CCI-P数据总线,所搭建的总线转换电路可以是 CCI-P/AXI总线转换电路,但并不局限于该类型的总线转换电路,可以根据市面上FPGA平台常用的数据总线类型,搭建其与片内总线对应的总线转换电路,以保证FPGA服务系统和功能硬件移植到相应类型FPGA平台上,该FPGA 服务系统和功能硬件能够正常工作。需要说明的是,对于FPGA服务系统所要移植的FPGA平台,并不局限于使用某特定数据总线的FPGA平台,提高了FPGA服务系统和功能硬件的移植灵活性。
且,在总线转换模块100包括多个总线转换电路的情况下,这多个总线转换电路分别用来实现不同类型的FPGA平台的数据总线(即外设数据总线),与FPGA服务系统的片内总线的通信,也就是说,各总线转换电路连接的外设数据总线可以不同。
这种情况下,可以由外设处理模块70确定当前参与功能的外设数据总线与片内总线不同时,触发与该外设数据总线对应的总线转换电路进行工作,从而保证用户设计的功能硬件能够直接适用于FPGA服务系统当前所在 FPGA平台。当需要将FPGA服务系统移植到其他FPGA平台(若其数据总线与移植前的FPGA平台的数据总线不同,且区别于FPGA服务系统的片内总线),按照上述方式,可以触发移植后的FPGA平台的数据总线对应的总线转换电路工作,减少了对移植后的FPGA服务系统的修改工作量,而用户设计的功能硬件能够直接在移植后到的FPGA平台上使用,无需重新设计,节省了移植工作量及成本。
可选的,外设处理模块70可以通过多选一开关电路(如单刀多掷)等部件实现与多个第二总线接口的连接,进而实现对分别连接多个第二总线接口的各总线转换电路的控制。
需要说明,对多个总线转换电路的选择与触发控制方式,并不局限于上文描述的实现方法,可以根据实际情况合理确定,均属于本申请保护范围,本实施例在此不再一一详述。
综上,在本实施例实际应用中,对于在FPGA云服务平台申请开发业务应用的用户,并不需要关心所申请到的FPGA云服务器中的FPGA服务系统使用的是什么类型的FPGA平台,直接将搭建的功能硬件与该FPGA服务系统的第一总线接口连接,由FPGA服务系统确定当前所在FPGA平台的数据总线与片内数据总线不同,将触发与该FPGA平台的数据总线对应的总线转换电路进入工作状态,对接收到的数据进行处理,以使处理后的数据与接收该数据的数据接口的总线协议相匹配,保证针对申请的业务应用,自定义搭建的功能硬件连接到FPGA服务系统,能够正常且可靠工作,使得FPGA云服务器能够对外提供该业务应用。
基于上述可选实施例描述的总线转换模块100在FPGA服务系统中起到的作用,FPGA服务系统的开发者可以按照市面上大部分FPGA平台的总线协议,开发该FPGA服务系统,本实施例以AXI数据总线协议为例进行说明, FPGA服务系统设计的通用的第一总线接口可以是AXI接口,用户设计功能硬件时,可以以AXI总线协议为标准进行设计。
且为了保证FPGA服务系统及功能硬件灵活移植应用到多种FPGA平台,如适配CCI-P接口的FPGA平台、适配AXI接口的FPGA平台,或适配其他总线接口的FPGA平台,FPGA服务系统开发者可以搭建多种总线转换电路,如CCI-P/AXI总线转换电路,其他总线接口类型/AXI总线转换电路等,这样,在将FPGA服务系统及功能硬件从当前FPGA平台移植到其他FPGA平台后,若两个FPGA平台的总线协议不同,FPGA服务系统可以切断到对应于新的 FPGA平台的总线转换电路工作,保证移植后的FPGA服务系统及功能硬件能够适用于新的FPGA平台,可靠地对外提供该功能硬件对应的业务服务,无需开发者花费大量时间和精力,对需要移植的FPGA服务系统和功能硬件进行重新设计,也不需要用户针对各种FPGA平台适配的接口类型,设计多套接口,大大节省了业务开发成本,提高了业务开发效率。
作为本申请提供的另一可选实施例,参照图10所示的FPGA服务系统的结构示意图,在上述各实施例的基础上,上述通信控制设备50还可以包括:设置有中断接口60,且与外设处理模块70连接的中断模块110。
在实际应用中,结合上文在中断接口60相应部分的描述,中断接口60 接收到功能硬件发起的中断请求后,可以由该中断处理模块直接对该中断请求进行处理,也就是说,上文描述的通信控制设备对中断请求的处理过程,具体可以由该中断模块110执行,以满足功能硬件对应业务应用的中断需求,使得FPGA服务系统能够对外提供可靠地业务服务。
需要说明,本实施例提出的中断模块110可以与上述各实施例描述的通信控制设备的组成结合,得到多个可选通信控制设备结构,并不局限于图10 给出的这种通信控制设备结构。
可选的,如图11示出的本申请又一实施例提供的FPGA服务系统的结构示意图,在上述各实施例的基础上,FPGA服务系统中的通信控制设备还可以包括:连接第一总线接口30,依据FPGA服务系统的运行状态信息执行预设操作的系统控制模块120。
需要说明的是,图11仅示出了该系统控制模块120与上述一可选实施例组合后的结构示意图,该系统控制模块120还可以与其他实施例描述的系统结构组合,形成新的FPGA服务系统的结构示意图,本申请并未一一列举。
在本实施例实际应用中,上述FPGA服务系统的运行状态信息可以基于部署FPGA服务系统的FPGA平台的温度、电压、电流等参数确定,用来判断该FPGA服务系统是否运行正常,本实施例对该运行状态信息包含的内容不作限定。
基于上文描述的运行状态信息,系统控制模块120可以包括温度检测器、电压检测器、电流检测器以及报警器等,控制这些检测器获取FPGA平台(具体可以是FPGA板卡)的温度、电压以及电流等参数,通过分析这些参数,得到FPGA服务系统的运行状态,还可以进一步获取该FPGA服务系统当前设置的各功能硬件的运行状态,以便在确定FPGA服务系统或功能硬件的某部件出现异常,及时执行预设操作。
例如,通过检测器对上述各参数的监控,确定FPGA板卡出现温度过高、电压过高、电流过大等任一种异常情况,可以生成报警指令,并发送至报警器,触发报警器输出相应的报警信息,该报警信息可以直接呈现在与FPGA 云服务器的控制平台,以通知云服务提供者对相应的FPGA服务系统进行维护;也可以将该报警信息发送至当前使用FPGA服务系统的终端设备,由该终端设备输出该报警信息,以使得当前使用业务应用的用户能够了解该异常情况,进而向云服务提供者发送通知等等。本实施例对该报警信息的输出对象不作限定,且并不局限于直接显示报警信息的输出方式,也可以通过语音方式输出报警信息等等。
可选的,在出现上述任意一种异常情况时,也可以生成对应的调整指令,发送至对应的故障处理器件执行相应操作,缓解或解决异常情况。比如温度过高,可以发送降温指令至降温模块,对FPGA板卡所处环境进行降温等等,本实施例对出现异常情况下,执行的操作内容不做限定。
另外,系统控制模块120还可以用来实现FPGA固件的升级,其可以与外设处理模块70中的Flash控制器配合实现,对于系统控制模块120来说,其在可以接收固件升级指令后,检测当前系统信息满足升级条件,响应该固件升级指令,完成FPGA固件升级等,本实施例对FPGA固件升级具体实现方法不做限定。
综上,本实施例通过在FPGA服务系统中设置系统控制模块,监控该 FPGA服务系统及功能硬件的运行状态,能够及时发现异常情况并处理,保证开发该FPGA服务系统能够提供的业务应用的可靠运行。
进一步地,在上述各实施例提供的FPGA服务系统的基础上,参照图12,本申请提供了FPGA服务系统的又一实施例,如图12所示的该又一实施例提供的FPGA服务系统的结构示意图,FPGA服务系统的通信控制设备还可以包括:连接第一总线接口30,通过对FPGA服务系统的各模块组成部件的运行状态进行调试,以定位故障部件的调试接口模块130。
需要说明,本实施例提出的调试接口模块130可以与上述各实施例描述的通信控制设备的组成结合,得到多个可选通信控制设备结构,并不局限于图10给出的这种通信控制设备结构。
可选的,该调试接口模块130可以包括多个调试接口,调试接口可以通过第一总线接口与各种待调试部件连接,获取相应待调试部件的内部状态信息。如待调试部件可以是FPGA服务系统中的虚拟LED、开关、计数器、系统状态监控寄存器等部件,各调试接口具体可以获取虚拟LED运行信息、开关切换信息、计数器的计数信息、系统状态监控寄存器运行信息等,从而根据调试接口获取到的信息,判断虚拟LED、开关、计数器以及系统状态监控寄存器等相应部件运行是否正常,具体可以监控开关是否正常切换,计数器计数值是否正确等等。
可见,本实施例可以针对不同待调试部件,设置相应的调试接口,来获取待调试部件的内部状态信息,判断该待调试部件是否故障,以保证FPGA 服务系统运行的可靠性。其中,对于不同待调试部件,获取的内部状态信息及其故障判断条件通常是不同,具体可以根据待调试部件的工作原理等因素确定,并不局限于上文描述的方式。
可选的,调试接口模块130还可以用来对功能硬件中各部件运行状态的调试,定位故障部件,实现方式与上文对FPGA服务系统中各部件调试过程类似,本实施例在此不再赘述。
作为另一可选实施例,上述调试接口模块130也可以包括一个调试接口,用来接收外部设备针对某FPGA服务系统中的任意部件输入的调试指令,从而使FPGA服务系统响应该调试指令,获取相应部件的当前状态信息(如上述开关切换状态信息、计数器的计数状态信息等),由此确定该部件的运行状态是否正常,并根据当前状态信息对相应部件进行调试,以使该部件进入正常运行状态,具体调试内容以及调试方式可以基于部件类型确定,本实施例在此不再一一详述。
可见,本实施例通过在FPGA服务系统中设置调试接口模块,实现对各系统中或功能硬件中各部件运行状态的调试,准确定位故障部件,提高了故障部件维修效率。在实际应用中,对于调试接口模块包括多少个调试接口,及其用来对哪些部件进行调试等,可以由云服务提供者预先设定,具体设定方法不作限定。
综合上述各实施例对FPGA服务系统整体架构的描述,本申请还可以将 FPGA服务系统划分成多个功能区域,该FPGA服务系统中的各模块可以分别设置在不同的功能区域内,通过所设置的模块实现相应功能区域的功能,且各功能区域可以通过相应的第一总线接口进行通信,从而实现相应模块之间的数据交互。
具体的,上述功能区域可以包含上述外设处理模块、总线仲裁模块、总线转换模块、中断模块、系统控制模块及所述调试接口模块中的任一模块,且这多个功能区域之间可以通过片内总线连通,实现各功能区域之间的数据交互。
由此可见,本实施例通过上述方式,明确FPGA服务系统包含的实现不同功能的模块,如上述总线仲裁模块、外设处理模块、总线转换模块、中断处理模块、系统控制模块以及调试接口模块等模块的边界。这样,当需要对 FPGA服务系统的某个功能区域增加新的功能,或对原有模块进行升级等开发操作,FPGA云服务提供者可以直接在该功能区域内,对原有的硬件组成及其结构进行替换、修改、调试等处理,无需对FPGA服务系统的整个硬件架构进行重新构建,减少了FPGA云服务提供者的工作量,提高了FPGA服务系统的更新和扩展效率,进一步提高了FPGA服务系统的可扩展性,为后续开发提供了便利。
需要说明,本实施例对FPGA服务系统的功能区域的划分方式,及各功能区域内模块的布局方式不做限定。
可选的,对于上述各实施例提供的FPGA服务系统,还可以包括壳体,上述通信控制设备可以设置在该壳体内,即将FPGA服务系统中的各模块、数据总线及大部分总线接口设置在壳体内,且该FPGA服务系统部署在的 FPGA平台也可以位于在该壳体内,使得用户无法直观看到FPGA服务系统的内部结构以及FPGA平台的相关平台信息,对FPGA服务系统结构起到一定保护作用,避免用户非法更改FPGA服务系统的结构。
需要说明,FPGA服务系统中用于连接外设设备的通信接口(如连接驱动设备的PCIe接口,连接其他计算机设备的网口,或是连接其他外部设备的并口/串口等等)、连接用户设计的功能硬件的第一总线接口和中断接口可以裸露在壳体外表面,方便用户直观实现硬件连接,进而基于FPGA服务系统,实现功能硬件对应的业务应用的设计及应用程序的配置。
综上所述,在本实施例中,对于用户来说,FPGA云服务提供者开发的 FPGA服务系统好比是一个黑盒子,并不需要关心其内部结构,直接按照片内总线的总线协议在当前FPGA平台上部署功能硬件,即用户可以将搭建的功能硬件直接与裸露的第一总线接口和中断接口连接,完成该业务应用的硬件部分的设计,如图13所示的场景示意图,用户可以通过插拔方式,将硬件部分插入主机相应卡槽,利用FPGA云服务技术,完成相应的业务应用的软件设计与配置,使得包含该功能硬件的FPGA服务系统能够对外提供的该业务应用,以供其他用户访问该FPGA服务系统,使用该业务应用。
而且,当需要进行FPGA平台移植时,FPGA服务系统开发者可以直接将当前FPGA平台上的FPGA服务系统及用户设计的各功能硬件,移植到新的 FPGA平台,无需通知用户重新设计适用于新的FPGA平台的总线协议的功能硬件,且对移植后的FPGA服务系统也不需要重新设计,开发者只需要进行适应性调整,即可适用于新的FPGA平台,大大减少了移植FPGA服务系统及各功能硬件所花费的工作量和成本。
结合各实施例描述的FPGA服务系统,本实施例还提供了一种FPGA服务器,如图14所示的FPGA服务器的结构示意图,该FPGA服务器可以包括至少一个FPGA服务系统(图14仅以一个FPGA服务系统为例进行说明)。
其中,当FPGA服务器包括多个FPGA服务系统,各FPGA服务系统的组成结构可以相同,具体可以参照上述实施例描述的FPGA服务系统;当然,各FPGA服务系统也可以存在差异,本实施例对此不作限定。
在本实施例中,FPGA服务器可以是云服务器,则FPGA服务器具有云服务器的基本功能,本实施例在此不作详述。基于此,在实际应用中,当用户需要基于云服务生成某一业务应用,可以通过启动下载的应用程序,或通过浏览器输入网址等方式,进入FPGA云服务平台,进行注册获取在该FPGA 云服务平台进行FPGA设计的权限,之后,由该FPGA云服务平台可以为该用户分配一个携带有FPGA服务系统的FPGA服务器,以使用户据此完成 FPGA设计的硬件部分以及软件部分的设计。
可见,在实施例中,用户能够直接利用FPGA服务器中的FPGA服务系统,针对要开发的业务应用,直接按照FPGA服务系统的片内总线的总线协议搭建功能硬件,不需要关注FPGA服务系统当前部署在什么类型的FPGA 平台,无需投入大量资金购置物理服务器,极大节省了芯片购买、硬件设计以及大规模部署所花费的时间和成本,且FPGA服务器提供的FPGA硬件开发环境,降低了学习成本,简单易用,方便用户随时购买随时进行开发使用,为其他用户提供自己设计的业务服务。
可选的,上述FPGA服务器还可以外部设备,且外部设备可以连接各 FPGA服务系统的通信接口,需要说明,对于不同类型的外部设备,FPGA服务系统连接外部设备的通信接口类型可以不同,具体可以根据外部设备的通信接口确定,本实施例在此不做详述。
参照图14,上文给出的外部设备至少可以包括驱动设备,本实施例以驱动设备是主机为例进行说明,该主机可以包括:与外设处理模块的通信接口连接的驱动器;
与驱动器连接的存储器,该存储器可以包括与FPGA服务系统中的至少一个功能硬件对应的应用程序。
驱动器可以包括存储运行应用程序与硬件交互的程序等,其具体可以是适用于各种window操作系统、linux操作系统等操作系统的软件侧的驱动,本实施例对如何驱动业务的应用程序在操作系统中的工作方式不作详述。
相应地,存储器可以设置在具有window操作系统或linux操作系统的主机中的存储介质,用来存储软件应用程序,以供用户使用应用程序提供的各种业务服务。其中,关于应用程序在主机中的配置方法以及控制方式等本实施例均不作限定。
在本实施例中,存储器存储的应用程序至少包括对应用户开发的业务应用的应用程序,如用户开发业务应用是图像压缩,那么,该存储器可以存储实现图像压缩的应用程序;用户开发业务应用是音视频业务,该存储器可以存储实现视音频数据处理的应用程序。
可见,针对基于FPGA服务系统开发的各种业务应用,该存储器可以包括的实现相应业务应用的软件应用程序,利用FPGA服务器对业务的高速处理能力,提高业务处理效率,从而为使用者提供良好业务服务体验。
可选的,外部设备除了包含驱动设备之外,还可以包括如计算机设备、存储设备等,这些外部设备可以通过FPGA服务系统中相应的通信接口,如网口、并口/串口连接,实现各外部设备与FPGA服务系统之间的通信,而主机与FPGA服务系统的通信接口的连接方式可以采用插拔方式实现,如通过 PCIe接口进行插拔连接,用户完成功能硬件的设计后,可以将得到的FPGA 服务系统的PCIe接口插入主机对应的插槽,从而实现对用户开发业务对应的上传应用设计。
作为一可选实施例,在实际应用中,如图15所示,FPGA云服务平台通常具有多个FPGA服务器,当用户利用FPGA云服务平台,开发具有某业务应用的服务器,可以直接利用已有FPGA服务器的FPGA服务系统,部署实现该业务应用的功能硬件,并配置相应的应用程序,不需要购买物理服务器进行软硬件的部署,节省了业务应用开发成本及效率,且利用FPGA强大运算能力,提高了业务应用运行效率。
综上,本实施例提供的FPGA服务器解决了各大FPGA芯片厂商总线不通用,接口和时序不兼容的问题,使其能够应用到采用不同总线标准(或者说不同通信协议)的FPGA平台,且在进行FPGA平台移植过程中,不需要重新设计用户自定义的功能硬件,也极大减少了对FPGA服务系统的修改或调整,节省了移植时间和成本;且对于开发业务应用的用户来说,其不需要关注该业务将要应用的FPGA平台,减少了业务开发用户的工作量,提高了业务开发效率。
基于上文描述的FPGA服务系统实施例的描述,及图13和图15所示的 FPGA服务系统的应用场景示意图,本实施例提出了一种业务应用生成方法,该方法主要是从FPGA云服务平台的角度进行描述,如图16所示的流程图,该方法可以包括以下步骤:
步骤S11,接收业务生成请求;
在本实施例中,用户可以使用终端设备浏览器或其他方式,登录云服务平台,并在该云服务平台进行账号注册,获得在该云服务平台进行FPGA设计的权限,本实施例对在云服务平台上的账号注册过程不作详述。
之后,用户可以随时登录云服务平台,申请基于该云服务平台提供的FPGA服务器的硬件开发环境来生成任一业务,如用户登录云服务平台后,可以在终端设备的显示界面输出业务申请界面,用户可以点击“申请”按钮,从而生成相应的业务生成请求,所以说,该业务生成请求可以是基于用户登陆云服务平台进行的业务生成申请操作生成的。
步骤S12,响应该业务生成请求,针对本次申请生成的业务选定目标 FPGA服务器;
在实际应用中,由于云服务系统可能包括多个FPGA服务器,不同 FPGA服务器使用的FPGA平台可以不同,用户可以选择某FPGA平台所在的FPGA服务器,也可以由云服务平台接收到业务生成请求后,根据各 FPGA服务器的负载情况,为用户分配一FPGA服务器,供申请用户进行业务硬件及软件设计等等,即获取当前各FPGA服务器的负载信息,并按照负载控制策略,选定目标FPGA服务器等。本实施例在此不做一一详述本实施例对云服务平台如何选定目标FPGA服务器的方式不做限定。
步骤S13,将该目标FPGA服务器的配置信息反馈至客户端输出的业务生成界面进行展示;
其中,所述目标FPGA服务器的配置信息可以包括机型配置信息,如内存大小、所使用数据盘及网络信息等等,该配置信息可以用于指示用户基于目标FPGA服务器的FPGA服务系统进行本次申请生成业务的硬件设计。
步骤S14,利用接收到的业务生成信息,得到相应的业务应用程序,并存储在目标FPGA服务器;
其中,业务生成信息可以包括实现业务的应用程序、处理逻辑等信息,对于不同开发业务来说,业务生成信息包含的内容通常是不同的。在本实施例中,该业务生成信息可以在申请生成业务时输入云服务平台,也可以完成业务的硬件设计后,再基于得到的硬件结构,在线进行业务生成信息的编辑,以使目标FPGA服务获取所得业务生成信息,完成业务软件设计,得到业务应用程序。本实施例对业务配置信息包含的内容、生成方式等均不作限定。
步骤S15,接收到数据处理请求,获取该数据处理请求包含的业务标识;
其中,所述业务标识可以是业务名称、业务内容等。
步骤S16,将该数据处理请求发送至与该业务标识对应的FPGA服务器进行处理;
步骤S17,获取该数据处理请求对应的响应信息,并反馈至发送该数据处理请求的客户端。
在实际应用中,针对不同业务,其业务处理流程往往是不同的,对应响应信息内容也会有所差异,因此,FPGA服务器对数据处理请求的处理过程,可以根据其对应的业务确定,本实施例在此不做详述。
综上,当用户需要使用FPGA设计某业务时,可以直接登录本实施例提供的云服务平台,在该云服务平台进行业务生成申请,由云服务平台为用户分配一FPGA服务器完成硬件及软件设计,得到具有用户开发业务处理能力的FPGA服务器,以供其他用户使用。可见,本实施例无需购买并配置物理服务器,节省了业务开发时间和成本,降低了业务开发难度,提高了业务开发效率。而且,这与仅使用CPU的服务器相比,利用FPGA服务器降低了业务应用程序的处理延时,提高了业务处理能力。
下面将结合具体应用场景对本申请提供的基于云服务的业务生成方法进行具体描述。
以实时图像压缩业务为例,在实际应用中,常用的图片格式可以有 JPEG格式、WEBP格式等多种,WEBP图片格式比JPEG图片格式的存储空间小30%。为节省存储空间,降低传输流量,提升用户的图片下载体验,通常会采用WEBP格式进行存储及传输分发。但WEBP压缩计算复杂度是JPEG压缩的10倍以上,若采用传统使用CPU的服务器进行WEBP 转码处理,成本很高。对此,本实施例提出使用FPGA服务器进行图片转码处理,基于FPGA硬件特性,增强图片转码能力,且加快了图像压缩速度,也不会影响视图片质量。
因此,用户可以登录云服务平台,申请利用FPGA服务器生成图像压缩业务,用户得到分配的FPGA服务器后,可以基于其包含的FPGA服务系统,自定义设计图像压缩硬件,并部署在该FPGA服务系统的FPGA平台上,从而使该FPGA服务器包含该图像压缩硬件;之后,用户可以继续在该云服务平台上进行图像压缩程序的编程,将得到的图像压缩程序存储在所分配的FPGA服务器的主机中,从而使该FPGA服务器具有图像压缩处理能力。
经测试,对于图片大小为853x640的WEBP格式图片,FPGA服务器处理延时相比CPU服务器降低了20倍,且该FPGA服务器进行图像压缩的处理性能是CUP服务器的6倍。可见,其他用户使用本用户开发的FPGA服务器进行图像压缩处理时,极大提高了处理速度。
同样,在对时间和效率要求都比较高的高性能计算应用中,如利用深度学习模型实现社交平台中图片分类检测等应用,本实施例按照上述方式在分配的FPGA服务器中自定义功能硬件,并录入实现该深度学习模块的程序后,从而使该FPGA服务器对深度学习模块中的卷积神经网络CNN算法进行加速计算,进而提高图片分类检测效率。
需要说明,本实施例对上述基于云服务平台的业务生成方法的应用场景不作限定,并不局限于上文图像压缩、深度学习模块等业务生成,生成过程类似,区别在于具体硬件结构以及软件生成信息内容,本实施例在此不再一一详述。
结合上文分析,由于针对用户申请业务,在FPGA服务系统的FPGA平台上部署的功能硬件,可以遵循与该FPGA服务系统的片内总线的总线协议进行设计,若其与FPGA平台的总线协议不同,为了保证这种情况下,该功能硬件能够可靠接收到目标业务的待处理数据,本实施例提供了一种数据处理方法,如图17所示的流程图以及图18所示的具体场景下的流程示意图,该方法可以从上文给出的FPGA服务系统的角度进行描述,具体可以包括以下步骤:
步骤S21,获取FPGA服务系统片内总线的总线协议及FPGA平台的总线协议;
本实施例中,结合上述系统结构实施例的描述,FPGA服务系统片内总线的总线协议,即为用户自定义搭建的功能硬件遵循的总线协议,如AXI总线协议,FPGA平台的总线协议即为连接第二总线接口的外设数据总线的总线协议,随着FPGA服务系统在不同FPGA平台上的移植,该外设数据总线的总线协议是可以改变的,如AXI总线协议或CCI-P总线协议等。
可选的,本实施例可以通过获取相应片内总线以及FPGA平台的数据总线的总线信息,来确定相应总线的总线协议,该总线信息可以包括总线的类型、时序、频率等,本实施例对该总线信息包含的内容,以及对获取上述各数据总线的总线协议的方式不作限定。
步骤S22,检测FPGA服务系统的片内总线的总线协议与FPGA平台的总线协议不同;
本实施例实际应用中,由于各厂商的FPGA平台所使用的总线协议是已知的,因此,可以通过检测FPGA服务系统中外设处理模块运行的FPGA平台类型,来确定当前部署FPGA服务系统所用的FPGA平台的总线协议,如图18所示,具体可以检测外设处理模块是否运行在Intel平台,如果是,说明当前使用的FPGA平台采用的是CCI-P总线协议,适用于CCI-P接口,本实施例提供的FPGA服务系统设计的通用AXI接口与该FPGA平台并不适配,此时需要触发FPGA服务系统的CCI-P/AXI总线转换模块工作。
基于此,对于上述步骤S22具体可以通过检测FPGA服务系统的外设处理模块运行的平台是否为Intel平台,如果是,确定FPGA服务系统的片内总线的总线协议与FPGA平台的总线协议不同。
需要说明,市面上的FPGA平台多种多样,采用非AXI总线协议的FPGA 平台除了Intel平台,还有其他FPGA平台,因此,在执行步骤S22是,还可以进一步检测是否是其他FPGA平台,实现过程与上文描述检测过程类似,本实施例在此不再一一详述。
且由于确定外设处理模块运行的FPGA平台采用AXI总线协议,FPGA 平台采用的总线协议与FPGA服务系统的片内总线的总线协议相同,需要进行数据转换处理,外设处理模块接收到的数据可以直接通过第一总线接口,发送至相应的功能硬件,且功能硬件通过第一总线接口发送的数据,外设处理模块也能够可靠读取,并转发至主机相应的应用程序执行,具体实现流程本实施例不再详述,本实施例主要对FPGA服务系统的片内总线的总线协议与FPGA平台的总线协议不同的情况进行描述。
步骤S23,对FPGA服务系统的通信控制设备接收的数据进行处理,以使处理后的数据能够在通信控制设备的通信接口与第一总线接口之间传输。
可选的,本实施例可以在检测到检测FPGA服务系统的片内总线的总线协议与FPGA平台的总线协议不同,生成触发指令,通过该触发指令指示 FPGA服务系统的总线转换模块进入工作状态,对接收到的数据进行处理,以使处理后的数据与接收处理后的数据的总线接口的总线协议相匹配,从而实现FPGA服务系统的第一总线接口与FPGA平台连接的第二总线接口之间的数据通信,即实现FPGA服务系统的第一总线接口与通信接口之间的数据交互,以保证连接FPGA服务系统的第一总线接口的功能硬件,能够在当前 FPGA平台上的可靠运行,满足业务需求。
需要说明,本申请对总线转换模块对接收到的数据进行转换处理的实现方法不做限定,本实施例在此仅以如何向功能硬件发送数据的场景为例,描述一种转换处理方式,参照19,总线转换模块的处理过程可以包括以下步骤:
步骤S31,对总线转换模块接收的数据进行缓存;
参照图19所示的流程示意图,并结合上文对FPGA服务系统的组成结构及其功能的描述,主机将外部设备发送的数据(比如业务访问请求等)通过 PCIe接口发送至外设处理模块,再通过总线转换模块发送至总线仲裁模块,进而由相应功能硬件连接的第一总线接口,发送给该功能硬件。在该过程中,若外设数据总线与片内总线的总线协议不同,需要总线转换模块进入转换模块,对接收到的数据进行转换处理,具体可以先对接收到的数据进行缓存,再按照以下步骤对缓存的数据进行处理,保证功能硬件能够可靠地接收到外部设备发送的数据。
步骤S32,按照第一数据总线的时钟频率提取缓存数据;
如图19所示,本实施例是在确定FPGA平台的总线协议与FPGA服务系统的片内总线的总线协议不同的情况下,总线转换模块响应外设处理模块发送的触发指令,进入工作状态后,才会按照本实施例描述的方式对缓存的数据进行处理,但并不局限于本实施例描述的这种处理方法。
其中,第一数据总线是指上述实施例中的FPGA服务系统的片内总线,本实施例对该第一数据总线的总线类型不做限定,对于不同类型的数据总线,其时钟频率、数据位宽等属性参数可能会不同。
步骤S33利用第一数据总线的数据位宽,对提取的数据进行转换处理,得到待处理业务数据;
由于数据总线的数据带宽=时钟频率*数据位宽,不同类型数据总线的数据带宽往往是不同的,在不同数据总线中需要按照相应的数据带宽实现数据传输。其中,数据位宽决定了一次数据传输的信息量,数据总线的时钟频率可以是该数据总线的工作频率,可以用MHz表示。
在本实施例中,除了本实施例给出的时钟频率、数据位宽这两个参数,总线转换模块还可以按照其他参数进行数据处理,本实施例在此不做一一详述。
步骤S34,将待处理业务数据发送至相应的功能硬件,由该功能硬件执行待处理业务数据。
在实际应用中,对于功能硬件反馈至主机中相应应用程序的数据,也可以按照本实施例描述的转换处理方法,由总线转换模块对从总线仲裁模块中的第一总线接口接收到的数据进行处理,再通过外设处理模块的PCIe接口发送至主机,处理流程与本实施例描述的主机向功能硬件发送数据的流程类似,因此,图19中的FPGA服务系统并未示出该处理流程。
以图像压缩处理业务为例,参照图20所示的应用场景示意图,该业务的开发用户按照上述方式申请并开发得到,具有图像压缩处理能力的FPGA服务器后,其他用户登录该FPGA服务器进行图像压缩,在图像压缩处理过程中,其他用户向部署有与该图像压缩处理业务对应的功能硬件的FPGA服务器,发起图像压缩处理请求后,可以由该FPGA服务器中的FPGA服务系统可以按照上述数据处理方法,对接收到的图像压缩处理请求进行处理,即利用其总线转换模块,保证该待处理数据可靠传输与该图像压缩处理业务对应的功能硬件,由该功能硬件进行处理,得到的响应数据也可以通过总线转换模块,可靠发送至外设处理模块,进而通过主机反馈至用户终端。
其中,在功能硬件实现图像压缩处理业务过程中,可能会发起中断请求,如图19所示,此时可以将中断请求通过中断接口、外设处理模块、PCIe接口发送至主机,以使主机中图像压缩应用程序响应中断请求,并通过上述路径 (即PCIe接口、外设处理模块、中断接口、功能硬件)反馈中断响应,以使该功能硬件得知主机中图像压缩应用程序完成中断请求。本实施例对响应中断请求的实现方法不做限定。
综上,当用户设计的功能硬件遵循的总线协议,与FPGA服务系统所在的FPGA平台的总线协议不一致,本实施例的FPGA服务系统利用总线转换模块,保证主机发送至FPGA服务系统的数据能够可靠传输至相应功能硬件进行处理,且功能硬件发送的数据也能够被可靠传输至主机,不需要针对当前FPGA平台,重新设计适配的功能硬件,节省了业务开发成本,提高了业务开发效率。
本实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器(如云服务系统中的控制中心)执行,可以实现上述数据处理方法的各个步骤,具体步骤可以参照上述方法实施例的描述,本实施例在此不作赘述。
最后,需要说明的是,关于上述各实施例中,诸如第一、第二等之类的关系术语仅仅用来将一个操作、单元或模块与另一个操作、单元或模块区分开来,而不一定要求或者暗示这些单元、操作或模块之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者系统中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的FPGA服务器而言,由于其包含实施例公开的FPGA服务系统,所以描述的比较简单,相关之处参见FPGA服务系统部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (15)

1.一种FPGA服务系统,其特征在于,所述系统包括:
连接驱动设备的通信接口;
连接所述FPGA服务系统的片内总线的第一总线接口,所述第一总线接口连接功能硬件;
分别连接所述通信接口和所述第一总线接口的通信控制设备,当FPGA平台的总线协议与所述片内总线的通信协议不同,所述通信控制设备控制总线转换模块对接收到的数据进行处理,以使处理后的数据遵循接收所述处理后的数据的总线接口的总线协议,进而实现所述通信接口与所述第一总线接口之间数据通信,以用于保证所述功能硬件在不同FPGA平台上的移植;
其中,所述FPGA平台上部署所述FPGA服务系统。
2.根据权利要求1所述的系统,其特征在于,所述系统还包括:
连接所述通信控制设备的中断接口,所述中断接口连接所述功能硬件,接收所述功能硬件发起的中断请求,并将得到的相应中断响应反馈至所述功能硬件。
3.根据权利要求2所述的系统,其特征在于,所述通信控制设备包括:
设置有所述通信接口及第二总线接口的外设处理模块,所述通信接口通过所述第二总线接口与所述第一总线接口连接,且所述第二总线接口的总线协议与所述FPGA平台的总线协议一致。
4.根据权利要求3所述的系统,其特征在于,所述通信控制设备还包括:
设置有多个所述第一总线接口,按照所述片内总线的总线协议,对连接不同第一总线接口的各模块进行调度与仲裁的总线仲裁模块。
5.根据权利要求4所述的系统,其特征在于,
所述总线转换模块,分别连接所述第一总线接口和所述第二总线接口,当FPGA平台的总线协议与所述片内总线的总线协议不同,执行所述对接收到的数据进行处理的步骤。
6.根据权利要求5所述的系统,其特征在于,所述通信控制设备还包括:
设置有所述中断接口,且与所述外设处理模块连接的中断模块。
7.根据权利要求6所述的系统,其特征在于,所述通信控制设备还包括:
连接所述第一总线接口,依据所述FPGA服务系统的运行状态信息执行预设操作的系统控制模块。
8.根据权利要求7所述的系统,其特征在于,所述通信控制设备还包括:
连接所述第一总线接口,通过对所述FPGA服务系统的各模块组成部件的运行状态进行调试,以定位故障部件的调试接口模块。
9.根据权利要求1~8任一项所述的系统,其特征在于,所述功能硬件按照所述片内总线的总线协议搭建而成;
当所述功能硬件的数量为多个,多个功能硬件连接不同的第一总线接口,实现至少一种业务应用。
10.根据权利要求8所述的系统,其特征在于,所述FPGA服务系统划分成多个功能区域,一功能区域包含所述外设处理模块、所述总线仲裁模块、所述总线转换模块、所述中断模块、所述系统控制模块及所述调试接口模块中的任一模块,且所述多个功能区域之间通过所述片内总线连通。
11.一种数据处理方法,其特征在于,应用于如权利要求1-10任意一项所述的FPGA服务系统,所述FPGA服务系统部署在FPGA平台上,所述方法包括:
检测所述FPGA服务系统的片内总线的总线协议与所述FPGA平台的总线协议不同;
对所述FPGA服务系统的通信控制设备接收的数据进行处理,以使处理后的数据能够在所述通信控制设备的通信接口与第一总线接口之间传输。
12.根据权利要求11所述的方法,其特征在于,所述对所述FPGA服务系统的通信控制设备接收的数据进行处理,包括:
对所述FPGA服务系统中的总线转换模块接收的数据进行缓存;
按照所述FPGA服务系统的片内总线的时钟频率提取缓存数据;
利用所述片内总线的数据位宽,对提取的数据进行转换处理,得到待处理业务数据;
将所述待处理业务数据发送至相应的功能硬件,由所述功能硬件执行所述待处理业务数据。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
获取所述FPGA服务系统的片内总线的第一总线协议信息,及所述FPGA平台的第二总线协议信息;
所述检测所述FPGA服务系统的片内总线的总线协议与所述FPGA平台的总线协议不同,包括:
对所述第一总线协议信息和所述第二总线协议信息进行比较;
当所述第一总线协议信息与所述第二总线协议信息不同,生成触发指令;
响应所述触发指令,控制所述FPGA服务系统中的总线转换模块进行转换模式,并执行步骤所述对所述FPGA服务系统中的总线转换模块接收的数据进行缓存。
14.根据权利要求11~13任意一项所述的方法,其特征在于,所述方法还包括:
响应客户端发送的业务生成请求,针对本次申请生成的业务选定目标FPGA服务系统;
将所述目标FPGA服务系统的配置信息反馈至所述客户端,由所述客户端输出的业务生成界面对所述配置信息进行展示;
获取基于业务生成信息得到的业务应用程序,并对所述目标应用程序进行存储;
其中,所述FPGA服务系统设置有与所述目标应用程序对应的目标功能硬件,由所述目标功能硬件支持所述目标应用程序响应数据处理请求。
15.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行,实现如权利要求11~14任意一项所述的数据处理方法的各步骤。
CN201811150228.3A 2018-09-29 2018-09-29 Fpga服务系统、数据处理方法及存储介质 Active CN110209399B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811150228.3A CN110209399B (zh) 2018-09-29 2018-09-29 Fpga服务系统、数据处理方法及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811150228.3A CN110209399B (zh) 2018-09-29 2018-09-29 Fpga服务系统、数据处理方法及存储介质

Publications (2)

Publication Number Publication Date
CN110209399A CN110209399A (zh) 2019-09-06
CN110209399B true CN110209399B (zh) 2022-02-08

Family

ID=67779793

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811150228.3A Active CN110209399B (zh) 2018-09-29 2018-09-29 Fpga服务系统、数据处理方法及存储介质

Country Status (1)

Country Link
CN (1) CN110209399B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111181917A (zh) * 2019-11-20 2020-05-19 中国电子科技集团公司第三十研究所 一种fpga安全防护方法
CN111045687B (zh) * 2019-12-06 2022-04-22 浪潮(北京)电子信息产业有限公司 一种人工智能应用的部署方法及相关装置
CN113312098B (zh) * 2020-04-01 2022-08-12 阿里巴巴集团控股有限公司 程序加载方法、设备、系统及存储介质
CN114528032A (zh) * 2020-10-30 2022-05-24 华为云计算技术有限公司 一种服务器系统以及数据处理的方法
CN112579511A (zh) * 2020-12-19 2021-03-30 南京理工大学 一种新型流式大数据平台硬件架构及其实现方法
CN112860612B (zh) * 2021-02-05 2022-09-16 中国电子科技集团公司第五十八研究所 互联裸芯与mpu的接口系统及其通信方法
CN113381842B (zh) * 2021-06-30 2023-04-18 成都中微达信科技有限公司 一种基于网络的高速数据传输方法、装置、电子设备和介质
CN117980835A (zh) * 2021-09-27 2024-05-03 西门子股份公司 用于提供与信息系统相关联的服务的方法和系统
CN114327571B (zh) * 2022-03-14 2022-06-14 合肥悦芯半导体科技有限公司 文件配置方法、芯片测试机及计算机可读取存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895549A (zh) * 2010-07-21 2010-11-24 中国北车股份有限公司大连电力牵引研发中心 车辆通信网络数据转换网关及其转换方法
CN103440219A (zh) * 2013-08-23 2013-12-11 上海航天测控通信研究所 一种新型的通用总线转换桥ip核
CN107294996A (zh) * 2017-07-07 2017-10-24 中车青岛四方车辆研究所有限公司 协议转换器及转换方法
CN108092884A (zh) * 2017-11-23 2018-05-29 南京邮电大学 一种无线接入网关系统及应用方法
CN108595353A (zh) * 2018-04-09 2018-09-28 杭州迪普科技股份有限公司 一种基于PCIe总线的控制数据传输的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895549A (zh) * 2010-07-21 2010-11-24 中国北车股份有限公司大连电力牵引研发中心 车辆通信网络数据转换网关及其转换方法
CN103440219A (zh) * 2013-08-23 2013-12-11 上海航天测控通信研究所 一种新型的通用总线转换桥ip核
CN107294996A (zh) * 2017-07-07 2017-10-24 中车青岛四方车辆研究所有限公司 协议转换器及转换方法
CN108092884A (zh) * 2017-11-23 2018-05-29 南京邮电大学 一种无线接入网关系统及应用方法
CN108595353A (zh) * 2018-04-09 2018-09-28 杭州迪普科技股份有限公司 一种基于PCIe总线的控制数据传输的方法及装置

Also Published As

Publication number Publication date
CN110209399A (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
CN110209399B (zh) Fpga服务系统、数据处理方法及存储介质
EP3272072B1 (en) Method, apparatus and system for dynamic bandwidth management in systems
CN109766302B (zh) 设备管理的方法和装置
EP3206127B1 (en) Method, computer, and apparatus for migrating memory data
CN102567109A (zh) 中断分配方案
CN110750312A (zh) 硬件资源配置方法、装置、云侧设备和存储介质
US9319313B2 (en) System and method of forwarding IPMI message packets based on logical unit number (LUN)
US7500147B2 (en) Test system and method
US20150229310A1 (en) Systems and methods for fpga development and operation
CN110704365A (zh) 一种基于fpga的重构装置
CN114925644A (zh) 在边缘系统验证逻辑系统设计的方法、边缘系统
US9942120B2 (en) Technique for monitoring component processing
JP2022541001A (ja) リンク分岐可用性を判定する方法及び装置
CN109901664B (zh) 提供时钟信号的方法、装置、系统、设备及可读存储介质
US10169281B2 (en) Switch system and operation method thereof
US10088523B2 (en) Debug adapter
US20180145869A1 (en) Debugging method of switches
CN116341443A (zh) 一种基于多fpga原型验证云平台的外设分配方法和系统
US20220279118A1 (en) Image capturing apparatus, method for controlling image capturing apparatus, information processing apparatus
US10445201B2 (en) System and method for automated integration and stress testing of hardware and software service in management controller using containerized toolbox
CN115952129A (zh) 一种刀片服务器设置方法、装置及可读存储介质
US11275875B2 (en) Co-simulation repeater with former trace data
CN109522245B (zh) 一种硬件管理的方法及管理装置
CN110046120B (zh) 基于iic协议的数据处理方法、装置、系统及存储介质
CN112154419A (zh) 性能监测装置、方法、片上系统、可移动平台及相机

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant