CN104657308A - 一种用fpga实现的服务器硬件加速的方法 - Google Patents

一种用fpga实现的服务器硬件加速的方法 Download PDF

Info

Publication number
CN104657308A
CN104657308A CN201510095885.2A CN201510095885A CN104657308A CN 104657308 A CN104657308 A CN 104657308A CN 201510095885 A CN201510095885 A CN 201510095885A CN 104657308 A CN104657308 A CN 104657308A
Authority
CN
China
Prior art keywords
fpga
qpi
module
memory
hardware
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.)
Pending
Application number
CN201510095885.2A
Other languages
English (en)
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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201510095885.2A priority Critical patent/CN104657308A/zh
Publication of CN104657308A publication Critical patent/CN104657308A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种用FPGA实现的服务器硬件加速的方法,其具体实现过程为:在FPGA内构建QPI总线模块、硬件加速模块、高速缓冲存储区、报文转换模块,报文转换模块将硬件加速模块发起的内存读写操作转换为一系列的QPI报文送到QPI总线模块,同时将QPI总线返回的读写响应发送到硬件加速模块。该一种用FPGA实现的服务器硬件加速的方法与现有技术相比,借助FPGA的可重配性,对不同的计算场景可配置不同的加速算法,有较高的灵活性和扩展性。利用QPI总线访问系统内存空间,提供了比主流PCIe总线更高的带宽和更小的访存延时。

Description

一种用FPGA实现的服务器硬件加速的方法
技术领域
本发明涉及计算机技术领域,具体地说是一种实用性强、用FPGA实现的服务器硬件加速的方法。
背景技术
随着计算机应用领域的不断扩展,各种应用场景对服务器的数据处理能力也提出了越来越高的要求。服务器在应用于偏重某些特定功能的场景时往往难以做到资源的平衡分配。要达到要求的处理速度,就需要更强大的计算能力,但这往往意味着很大的成本投入。另一方面,在某些对数据处理速度有苛刻要求的场合,普通服务器很难胜任这些工作。目前比较常见的解决方法是由硬件加速器分担一部分中央处理器(CPU)的工作,承担某类特定的计算。目前加速器通常使用PCIe作为总线。对于CPU和加速器需要经常交换的数据,受Cache一致性影响,访存延时较大,效率不高。
基于此,现提供一种用FPGA实现的服务器硬件加速的方法,本发明采用了Intel的QPI总线作为处理器与硬件加速器连接的总线,利用QPI的协议层保证了系统Cache一致性,相比PCIe可提供更高的总线带宽和更小的访存延时。同时本发明的加速算法是在FPGA内通过可编程门阵列实现的,同一套装置可以通过加载不同的FPGA bit流文件实现不同的加速功能,相比传统的硬件加速器具有更大的灵活性。
发明内容
本发明的技术任务是针对以上不足之处,提供一种实用性强、用FPGA实现的服务器硬件加速的方法。
一种用FPGA实现的服务器硬件加速的方法,其具体实现过程为:
1)在FPGA内构建一个QPI总线模块,该QPI模块包括QPI总线的物理层、链路层和协议层;
2)在FPGA内构建一个硬件加速模块,其内置用可编程门阵列实现的加速算法;
3)在FPGA内构建一个Cache,即高速缓冲存储区,该高速缓冲存储区连接上述QPI总线模块,且该区域用于存储硬件加速模块在计算中需要读取的内存副本,并通过QPI协议维护内存使用状态,保持Cache一致性;
4)在FPGA内构建一个报文转换模块,该报文转换模块连接上述QPI总线模块、硬件加速模块和高速缓冲存储区,实现硬件加速模块的内存读写指令与标准的QPI报文指令之间的相互转换,即该模块将硬件加速模块发起的内存读写操作转换为QPI报文,并送到QPI总线模块,同时将QPI总线返回的读写响应发送到硬件加速模块。
所述QPI总线模块为FPGA与Intel具备QPI总线的CPU之间的互连接口,并实现双向的数据访问。
高速缓冲存储区包括内存数据缓存区、标志缓存区,其中内存数据缓存区缓存从系统内存得到的内存数据副本;标志缓存区记录并维护内存数据在系统中的使用情况,配合QPI总线模块的协议层维护系统Cache一致性。
所述FPGA内还设置有连接报文转换模块的存储控制器,该存储控制器连接FPGA外部的存储芯片作为FPGA的私有内存空间。
本发明的一种用FPGA实现的服务器硬件加速的方法,具有以下优点:
该发明的一种用FPGA实现的服务器硬件加速的方法
本发明提出的一种用FPGA实现的服务器硬件加速的方法,通过可编程逻辑实现硬件加速功能可以满足高度定制化的计算需求,将计算任务用门级电路实现可大大提高计算速度。另外,本发明中FPGA芯片通过QPI总线和CPU直接连接,相比PCIe总线拥有更高的总线带宽和更小的访存延时,以较低的成本实现了和专用芯片构成的加速器相当的计算速度,同时又具有可重配性,极大地扩展了加速器的应用场景,实用性强,易于推广。
附图说明
附图1为本发明的实现示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明。
随着计算机应用场景日趋复杂,为了满足某类特定计算需求,需要由硬件加速器分担一部分特定的计算功能。本发明用FPGA实现所需的特殊计算功能,用QPI总线将FPGA接入计算机系统中,FPGA可以通过QPI协议直接访问系统存储空间,相比目前主流的PCIe总线拥有较高的总线带宽和较低的访存延时,提升了系统的工作效率。
基于此,现提供一种用FPGA实现的服务器硬件加速的方法,该方法中,在FPGA内部实现加速算法,通过QPI总线直接访问系统内存空间,对内存数据进行特定的计算和处理。
如附图1所示,该方法的具体实现过程为:
1)在FPGA内构建一个QPI总线模块,该QPI模块包括QPI总线的物理层、链路层和协议层;
上述QPI总线模块,该模块所实现的QPI协议表表项可根据系统CPU数目和连接的拓扑结构做适当的裁剪和简化,为FPGA内实现其它功能留出更多资源。该模块作为FPGA与Intel具备QPI总线的CPU之间的互连接口,可实现双向的数据访问。
2)在FPGA内构建一个硬件加速模块,其内置用可编程门阵列实现的加速算法;
硬件加速模块是实现硬件加速功能的核心。在该模块内,根据具体的应用场景选择合适的加速算法。由于FPGA具有在线可编程的特性,同一套硬件装置可通过bit流文件配置不同的加速算法。对于复杂的加速算法,可借助FPGA芯片良好的扩展性实现与其它芯片的互连,包括其它FPGA芯片,协处理芯片,内存芯片等。
3)在FPGA内构建一个Cache,即高速缓冲存储区,该高速缓冲存储区连接上述QPI总线模块,且该区域用于存储硬件加速模块在计算中需要读取的内存副本,并通过QPI协议维护内存使用状态,保持Cache一致性;
高速缓冲存储区包括内存数据缓存区和标志(Tag)缓存区。内存数据缓存区缓存从系统内存得到的内存数据副本。Tag缓存区记录并维护内存数据在系统中的使用情况,配合QPI总线模块的协议层维护系统Cache一致性。
4)在FPGA内构建一个报文转换模块,该报文转换模块连接上述QPI总线模块、硬件加速模块和高速缓冲存储区,实现硬件加速模块的内存读写指令与标准的QPI报文指令之间的相互转换,即该模块将硬件加速模块发起的内存读写操作转换为QPI报文,并送到QPI总线模块,同时将QPI总线返回的读写响应发送到硬件加速模块。
报文转换模块实现了硬件加速模块的相对简单的内存读写指令与标准的QPI报文指令之间的相互转换。一条硬件加速器的读写指令由于考虑到系统的Cache一致性问题,通常需要转换为多条有先后关系的QPI报文指令,并伴随对FPGA Cache缓存区的读写操作。对于FPGA的私有地址空间,该模块还负责对私有地址空间的译码。
所述FPGA内还设置有连接报文转换模块的存储控制器,该存储控制器连接FPGA外部的存储芯片作为FPGA的私有内存空间。
实施例:
以实现图像处理加速器为例,首先用硬件描述语言(HDL)在FPGA内实现图像处理算法加速模块。由于图像数据一般需要较大的存储空间,可以在FPGA内例化存储控制器,连接FPGA外部的存储芯片作为FPGA的私有内存空间。接着实现QPI总线模块,其中协议层的协议表根据系统结构可做精简。然后在FPGA内实现Cache模块和报文转发模块。在报文转发模块内设置地址译码表,将FPGA图像处理模块需要访问的地址正确地映射到FPGA私有内存空间和系统内存空间。将HDL语言描述的硬件加速器系统进行逻辑综合和布局布线,生成可执行的bit流文件加载到FPGA中。在服务器工作期间,CPU首先识别并配置FPGA内部状态寄存器,FPGA经配置后配合软件程序,在进程需要调用图像处理算法时启动硬件加速装置,通过QPI总线从特定内存区域读出图像数据并送往图像处理模块进行处理。图像处理完成后再将数据送回到指定内存区域,实现图像数据处理的硬件加速。
上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种用FPGA实现的服务器硬件加速的方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

Claims (4)

1.一种用FPGA实现的服务器硬件加速的方法,其特征在于,其具体实现过程为:
1)在FPGA内构建一个QPI总线模块,该QPI模块包括QPI总线的物理层、链路层和协议层;
2)在FPGA内构建一个硬件加速模块,其内置用可编程门阵列实现的加速算法;
3)在FPGA内构建一个Cache,即高速缓冲存储区,该高速缓冲存储区连接上述QPI总线模块,且该区域用于存储硬件加速模块在计算中需要读取的内存副本,并通过QPI协议维护内存使用状态,保持Cache一致性;
4)在FPGA内构建一个报文转换模块,该报文转换模块连接上述QPI总线模块、硬件加速模块和高速缓冲存储区,实现硬件加速模块的内存读写指令与标准的QPI报文指令之间的相互转换,即该模块将硬件加速模块发起的内存读写操作转换为QPI报文,并送到QPI总线模块,同时将QPI总线返回的读写响应发送到硬件加速模块。
2.根据权利要求1所述的一种用FPGA实现的服务器硬件加速的方法,其特征在于,所述QPI总线模块为FPGA与Intel具备QPI总线的CPU之间的互连接口,并实现双向的数据访问。
3.根据权利要求1所述的一种用FPGA实现的服务器硬件加速的方法,其特征在于,高速缓冲存储区包括内存数据缓存区、标志缓存区,其中内存数据缓存区缓存从系统内存得到的内存数据副本;标志缓存区记录并维护内存数据在系统中的使用情况,配合QPI总线模块的协议层维护系统Cache一致性。
4.根据权利要求1~3中任一所述的一种用FPGA实现的服务器硬件加速的方法,其特征在于,所述FPGA内还设置有连接报文转换模块的存储控制器,该存储控制器连接FPGA外部的存储芯片作为FPGA的私有内存空间。
CN201510095885.2A 2015-03-04 2015-03-04 一种用fpga实现的服务器硬件加速的方法 Pending CN104657308A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510095885.2A CN104657308A (zh) 2015-03-04 2015-03-04 一种用fpga实现的服务器硬件加速的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510095885.2A CN104657308A (zh) 2015-03-04 2015-03-04 一种用fpga实现的服务器硬件加速的方法

Publications (1)

Publication Number Publication Date
CN104657308A true CN104657308A (zh) 2015-05-27

Family

ID=53248462

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510095885.2A Pending CN104657308A (zh) 2015-03-04 2015-03-04 一种用fpga实现的服务器硬件加速的方法

Country Status (1)

Country Link
CN (1) CN104657308A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105824706A (zh) * 2015-12-31 2016-08-03 华为技术有限公司 一种配置加速器的方法和装置
CN105956666A (zh) * 2016-04-29 2016-09-21 浪潮(北京)电子信息产业有限公司 一种机器学习方法及系统
CN106250349A (zh) * 2016-08-08 2016-12-21 浪潮(北京)电子信息产业有限公司 一种高能效异构计算系统
CN106909527A (zh) * 2017-02-19 2017-06-30 郑州云海信息技术有限公司 一种系统加速方法及装置
WO2017144006A1 (zh) * 2016-02-24 2017-08-31 华为技术有限公司 加速器网络中路由报文的方法和装置
CN108256492A (zh) * 2018-01-26 2018-07-06 郑州云海信息技术有限公司 一种图像识别方法、装置及系统
CN108733482A (zh) * 2018-03-27 2018-11-02 华为技术有限公司 信息获取的方法、处理器以及通信装置
CN108989317A (zh) * 2018-07-26 2018-12-11 浪潮(北京)电子信息产业有限公司 一种基于FPGA的RoCE网卡数据传输方法及网卡
CN109284250A (zh) * 2017-09-11 2019-01-29 南京弹跳力信息技术有限公司 一种基于大规模fpga芯片的计算加速系统及其加速方法
CN109669897A (zh) * 2017-10-13 2019-04-23 华为技术有限公司 数据传输方法和装置
CN110232037A (zh) * 2018-03-05 2019-09-13 三星电子株式会社 主机系统及其方法和加速模块
CN110389927A (zh) * 2019-06-18 2019-10-29 苏州浪潮智能科技有限公司 一种四路服务器
CN110622145A (zh) * 2017-05-15 2019-12-27 莫列斯有限公司 可重新配置的服务器以及具有可重新配置的服务器的服务器机架
CN111352475A (zh) * 2018-12-24 2020-06-30 航天信息股份有限公司 一种服务器
CN111865657A (zh) * 2015-09-28 2020-10-30 华为技术有限公司 一种加速管理节点、加速节点、客户端及方法
CN112887093A (zh) * 2021-03-30 2021-06-01 矩阵元技术(深圳)有限公司 用于实现密码算法的硬件加速系统和方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN202533853U (zh) * 2012-04-27 2012-11-14 浪潮电子信息产业股份有限公司 一种可用于cpu和io扩展的计算板
CN102880587A (zh) * 2012-10-09 2013-01-16 无锡江南计算技术研究所 基于嵌入式加速核心的独立显卡架构
US20140331014A1 (en) * 2013-05-01 2014-11-06 Silicon Graphics International Corp. Scalable Matrix Multiplication in a Shared Memory System
CN104205042A (zh) * 2012-03-30 2014-12-10 英特尔公司 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制
CN104335535A (zh) * 2012-06-26 2015-02-04 英特尔公司 使用生成树和网络交换元件资源在网络中路由信息流的方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104205042A (zh) * 2012-03-30 2014-12-10 英特尔公司 用于具有通用cpu核心和紧密耦合的加速器的处理核心的上下文切换机制
CN202533853U (zh) * 2012-04-27 2012-11-14 浪潮电子信息产业股份有限公司 一种可用于cpu和io扩展的计算板
CN104335535A (zh) * 2012-06-26 2015-02-04 英特尔公司 使用生成树和网络交换元件资源在网络中路由信息流的方法、装置及系统
CN102880587A (zh) * 2012-10-09 2013-01-16 无锡江南计算技术研究所 基于嵌入式加速核心的独立显卡架构
US20140331014A1 (en) * 2013-05-01 2014-11-06 Silicon Graphics International Corp. Scalable Matrix Multiplication in a Shared Memory System

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ANDDREW PUTNAM,ETC: "加快大型数据中心服务的可重构结构", 《中国集成电路》 *

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111865657A (zh) * 2015-09-28 2020-10-30 华为技术有限公司 一种加速管理节点、加速节点、客户端及方法
CN111865657B (zh) * 2015-09-28 2022-01-11 华为技术有限公司 一种加速管理节点、加速节点、客户端及方法
US11579907B2 (en) 2015-09-28 2023-02-14 Huawei Technologies Co., Ltd. Acceleration management node, acceleration node, client, and method
CN105824706B (zh) * 2015-12-31 2020-11-06 华为技术有限公司 一种配置加速器的方法和装置
US10698699B2 (en) 2015-12-31 2020-06-30 Huawei Technologies., Ltd. Method and apparatus for configuring accelerator
CN105824706A (zh) * 2015-12-31 2016-08-03 华为技术有限公司 一种配置加速器的方法和装置
WO2017114361A1 (zh) * 2015-12-31 2017-07-06 华为技术有限公司 一种配置加速器的方法和装置
US10333823B2 (en) 2016-02-24 2019-06-25 Huawei Technologies Co., Ltd. Method and apparatus for routing packet in accelerator network
WO2017144006A1 (zh) * 2016-02-24 2017-08-31 华为技术有限公司 加速器网络中路由报文的方法和装置
CN105956666B (zh) * 2016-04-29 2018-09-07 浪潮(北京)电子信息产业有限公司 一种机器学习方法及系统
CN105956666A (zh) * 2016-04-29 2016-09-21 浪潮(北京)电子信息产业有限公司 一种机器学习方法及系统
CN106250349A (zh) * 2016-08-08 2016-12-21 浪潮(北京)电子信息产业有限公司 一种高能效异构计算系统
CN106909527A (zh) * 2017-02-19 2017-06-30 郑州云海信息技术有限公司 一种系统加速方法及装置
US11907152B2 (en) 2017-05-15 2024-02-20 Molex, Llc Reconfigurable server and server rack with same
CN110622145B (zh) * 2017-05-15 2023-06-13 莫列斯有限公司 可重新配置的服务器以及服务器机架
CN110622145A (zh) * 2017-05-15 2019-12-27 莫列斯有限公司 可重新配置的服务器以及具有可重新配置的服务器的服务器机架
CN109284250A (zh) * 2017-09-11 2019-01-29 南京弹跳力信息技术有限公司 一种基于大规模fpga芯片的计算加速系统及其加速方法
CN109669897A (zh) * 2017-10-13 2019-04-23 华为技术有限公司 数据传输方法和装置
CN108256492A (zh) * 2018-01-26 2018-07-06 郑州云海信息技术有限公司 一种图像识别方法、装置及系统
US11132310B2 (en) 2018-03-05 2021-09-28 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
CN110232037B (zh) * 2018-03-05 2021-11-09 三星电子株式会社 主机系统及其方法和加速装置
CN110232037A (zh) * 2018-03-05 2019-09-13 三星电子株式会社 主机系统及其方法和加速模块
US11892957B2 (en) 2018-03-05 2024-02-06 Samsung Electronics Co., Ltd. SSD architecture for FPGA based acceleration
CN108733482A (zh) * 2018-03-27 2018-11-02 华为技术有限公司 信息获取的方法、处理器以及通信装置
CN108989317A (zh) * 2018-07-26 2018-12-11 浪潮(北京)电子信息产业有限公司 一种基于FPGA的RoCE网卡数据传输方法及网卡
CN111352475A (zh) * 2018-12-24 2020-06-30 航天信息股份有限公司 一种服务器
CN110389927A (zh) * 2019-06-18 2019-10-29 苏州浪潮智能科技有限公司 一种四路服务器
CN112887093A (zh) * 2021-03-30 2021-06-01 矩阵元技术(深圳)有限公司 用于实现密码算法的硬件加速系统和方法

Similar Documents

Publication Publication Date Title
CN104657308A (zh) 一种用fpga实现的服务器硬件加速的方法
US11929927B2 (en) Network interface for data transport in heterogeneous computing environments
US8930618B2 (en) Smart memory
CN107690622A (zh) 实现硬件加速处理的方法、设备和系统
US20150127691A1 (en) Efficient implementations for mapreduce systems
CN107992436A (zh) 一种NVMe数据读写方法及NVMe设备
CN102135950B (zh) 基于星型互联架构的片上异构多核系统及其通信方法
CN102831014B (zh) 一种利用多请求队列提升io并行性和减少小io延迟的方法
US9632557B2 (en) Active state power management (ASPM) to reduce power consumption by PCI express components
US20090307408A1 (en) Peer-to-Peer Embedded System Communication Method and Apparatus
CN106844263B (zh) 一种基于可配置的多处理器计算机系统及实现方法
JP2017211984A (ja) 再構成可能なマルチポートを具備するPCIeストレージシステムのためのQoSを認識した入出力管理方法、管理システム、及び管理装置
CN104821887A (zh) 通过使用具有不同延迟的存储器来进行分组处理的设备和方法
CN104601684A (zh) 云服务器系统
CN104699654A (zh) 一种基于chi片内互联总线与qpi片间互联总线互联适配系统和方法
CN103106173A (zh) 多核处理器核间互联的方法
CN106250348A (zh) 一种基于gpu访存特性的异构多核架构缓存管理方法
CN106662895A (zh) 计算机设备和计算机设备数据读写的方法
US9830283B2 (en) Multi-mode agent
US20090164751A1 (en) Method,system and apparatus for main memory access subsystem usage to different partitions in a socket with sub-socket partitioning
US11231927B2 (en) System, apparatus and method for providing a fabric for an accelerator
WO2017063447A1 (zh) 一种计算装置、节点设备和服务器
JP2020017263A (ja) メモリーシステム
CN104125292A (zh) 一种数据处理装置、云服务器及其使用方法
CN105608046A (zh) 基于MapReduce编程模型的多核处理器架构

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150527

WD01 Invention patent application deemed withdrawn after publication