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

文档序号:8339555阅读:309来源:国知局
一种用fpga实现的服务器硬件加速的方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体地说是一种实用性强、用FPGA实现的服务器硬件加速的方法。
【背景技术】
[0002]随着计算机应用领域的不断扩展,各种应用场景对服务器的数据处理能力也提出了越来越高的要求。服务器在应用于偏重某些特定功能的场景时往往难以做到资源的平衡分配。要达到要求的处理速度,就需要更强大的计算能力,但这往往意味着很大的成本投入。另一方面,在某些对数据处理速度有苛刻要求的场合,普通服务器很难胜任这些工作。目前比较常见的解决方法是由硬件加速器分担一部分中央处理器(CPU)的工作,承担某类特定的计算。目前加速器通常使用PCIe作为总线。对于CPU和加速器需要经常交换的数据,受Cache —致性影响,访存延时较大,效率不高。
[0003]基于此,现提供一种用FPGA实现的服务器硬件加速的方法,本发明采用了 Intel的QPI总线作为处理器与硬件加速器连接的总线,利用QPI的协议层保证了系统Cache —致性,相比PCIe可提供更高的总线带宽和更小的访存延时。同时本发明的加速算法是在FPGA内通过可编程门阵列实现的,同一套装置可以通过加载不同的FPGA bit流文件实现不同的加速功能,相比传统的硬件加速器具有更大的灵活性。

【发明内容】

[0004]本发明的技术任务是针对以上不足之处,提供一种实用性强、用FPGA实现的服务器硬件加速的方法。
[0005]一种用FPGA实现的服务器硬件加速的方法,其具体实现过程为:
1)在FPGA内构建一个QPI总线模块,该QPI模块包括QPI总线的物理层、链路层和协议层;
2)在FPGA内构建一个硬件加速模块,其内置用可编程门阵列实现的加速算法;
3)在FPGA内构建一个Cache,即高速缓冲存储区,该高速缓冲存储区连接上述QPI总线模块,且该区域用于存储硬件加速模块在计算中需要读取的内存副本,并通过QPI协议维护内存使用状态,保持Cache —致性;
4)在FPGA内构建一个报文转换模块,该报文转换模块连接上述QPI总线模块、硬件加速模块和高速缓冲存储区,实现硬件加速模块的内存读写指令与标准的QPI报文指令之间的相互转换,即该模块将硬件加速模块发起的内存读写操作转换为QPI报文,并送到QPI总线模块,同时将QPI总线返回的读写响应发送到硬件加速模块。
[0006]所述QPI总线模块为FPGA与Intel具备QPI总线的CPU之间的互连接口,并实现双向的数据访问。
[0007]高速缓冲存储区包括内存数据缓存区、标志缓存区,其中内存数据缓存区缓存从系统内存得到的内存数据副本;标志缓存区记录并维护内存数据在系统中的使用情况,配合QPI总线模块的协议层维护系统Cache —致性。
[0008]所述FPGA内还设置有连接报文转换模块的存储控制器,该存储控制器连接FPGA外部的存储芯片作为FPGA的私有内存空间。
[0009]本发明的一种用FPGA实现的服务器硬件加速的方法,具有以下优点:
该发明的一种用FPGA实现的服务器硬件加速的方法
本发明提出的一种用FPGA实现的服务器硬件加速的方法,通过可编程逻辑实现硬件加速功能可以满足高度定制化的计算需求,将计算任务用门级电路实现可大大提高计算速度。另外,本发明中FPGA芯片通过QPI总线和CPU直接连接,相比PCIe总线拥有更高的总线带宽和更小的访存延时,以较低的成本实现了和专用芯片构成的加速器相当的计算速度,同时又具有可重配性,极大地扩展了加速器的应用场景,实用性强,易于推广。
【附图说明】
[0010]附图1为本发明的实现示意图。
【具体实施方式】
[0011]下面结合附图和具体实施例对本发明作进一步说明。
[0012]随着计算机应用场景日趋复杂,为了满足某类特定计算需求,需要由硬件加速器分担一部分特定的计算功能。本发明用FPGA实现所需的特殊计算功能,用QPI总线将FPGA接入计算机系统中,FPGA可以通过QPI协议直接访问系统存储空间,相比目前主流的PCIe总线拥有较高的总线带宽和较低的访存延时,提升了系统的工作效率。
[0013]基于此,现提供一种用FPGA实现的服务器硬件加速的方法,该方法中,在FPGA内部实现加速算法,通过QPI总线直接访问系统内存空间,对内存数据进行特定的计算和处理。
[0014]如附图1所示,该方法的具体实现过程为:
I)在FPGA内构建一个QPI总线模块,该QPI模块包括QPI总线的物理层、链路层和协议层;
上述QPI总线模块,该模块所实现的QPI协议表表项可根据系统CPU数目和连接的拓扑结构做适当的裁剪和简化,为FPGA内实现其它功能留出更多资源。该模块作为FPGA与Intel具备QPI总线的CPU之间的互连接口,可实现双向的数据访问。
[0015]2)在FPGA内构建一个硬件加速模块,其内置用可编程门阵列实现的加速算法;
硬件加速模块是实现硬件加速功能的核心。在该模块内,根据具体的应用场景选择合适的加速算法。由于FPGA具有在线可编程的特性,同一套硬件装置可通过bit流文件配置不同的加速算法。对于复杂的加速算法,可借助FPGA芯片良好的扩展性实现与其它芯片的互连,包括其它FPGA芯片,协处理芯片,内存芯片等。
[0016]3)在FPGA内构建一个Cache,即高速缓冲存储区,该高速缓冲存储区连接上述QPI总线模块,且该区域用于存储硬件加速模块在计算中需要读取的内存副本,并通过QPI协议维护内存使用状态,保持Cache —致性;
高速缓冲存储区包括内存数据缓存区和标志(Tag)缓存区。内存数据缓存区缓存从系统内存得到的内存数据副本。Tag缓存区记录并维护内存数据在系统中的使用情况,配合QPI总线模块的协议层维护系统Cache —致性。
[0017]4)在FPGA内构建一个报文转换模块,该报文转换模块连接上述QPI总线模块、硬件加速模块和高速缓冲存储区,实现硬件加速模块的内存读写指令与标准的QPI报文指令之间的相互转换,即该模块将硬件加速模块发起的内存读写操作转换为QPI报文,并送到QPI总线模块,同时将QPI总线返回的读写响应发送到硬件加速模块。
[0018]报文转换模块实现了硬件加速模块的相对简单的内存读写指令与标准的QPI报文指令之间的相互转换。一条硬件加速器的读写指令由于考虑到系统的Cache —致性问题,通常需要转换为多条有先后关系的QPI报文指令,并伴随对FPGA Cache缓存区的读写操作。对于FPGA的私有地址空间,该模块还负责对私有地址空间的译码。
[0019]所述FPGA内还设置有连接报文转换模块的存储控制器,该存储控制器连接FPGA外部的存储芯片作为FPGA的私有内存空间。
[0020]实施例:
以实现图像处理加速器为例,首先用硬件描述语言(HDL)在FPGA内实现图像处理算法加速模块。由于图像数据一般需要较大的存储空间,可以在FPGA内例化存储控制器,连接FPGA外部的存储芯片作为FPGA的私有内存空间。接着实现QPI总线模块,其中协议层的协议表根据系统结构可做精简。然后在FPGA内实现Cache模块和报文转发模块。在报文转发模块内设置地址译码表,将FPGA图像处理模块需要访问的地址正确地映射到FPGA私有内存空间和系统内存空间。将HDL语言描述的硬件加速器系统进行逻辑综合和布局布线,生成可执行的bit流文件加载到FPGA中。在服务器工作期间,CPU首先识别并配置FPGA内部状态寄存器,FPGA经配置后配合软件程序,在进程需要调用图像处理算法时启动硬件加速装置,通过QPI总线从特定内存区域读出图像数据并送往图像处理模块进行处理。图像处理完成后再将数据送回到指定内存区域,实现图像数据处理的硬件加速。
[0021]上述【具体实施方式】仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述【具体实施方式】,任何符合本发明的一种用FPGA实现的服务器硬件加速的方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。
【主权项】
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的私有内存空间。
【专利摘要】本发明公开了一种用FPGA实现的服务器硬件加速的方法,其具体实现过程为:在FPGA内构建QPI总线模块、硬件加速模块、高速缓冲存储区、报文转换模块,报文转换模块将硬件加速模块发起的内存读写操作转换为一系列的QPI报文送到QPI总线模块,同时将QPI总线返回的读写响应发送到硬件加速模块。该一种用FPGA实现的服务器硬件加速的方法与现有技术相比,借助FPGA的可重配性,对不同的计算场景可配置不同的加速算法,有较高的灵活性和扩展性。利用QPI总线访问系统内存空间,提供了比主流PCIe总线更高的带宽和更小的访存延时。
【IPC分类】G06F13-42, G06F13-38
【公开号】CN104657308
【申请号】CN201510095885
【发明人】岳自超, 童元满, 李仁刚
【申请人】浪潮电子信息产业股份有限公司
【公开日】2015年5月27日
【申请日】2015年3月4日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1