本文为挪威奥斯陆大学(作者:Jonas Julian Jensen)的硕士论文,共107页。
传统上,数据库管理系统完全是用软件实现的。但是,将硬件添加到数据库集群服务器以获得更高的速度是有代价的。首先是硬件本身的成本,其次是必须使用的众多处理器的功耗增加。
本研究的目的是探讨如何利用FPGA的部分运行重构来加速数据库。旨在展示基于FPGA的查询处理器如何与常规软件数据库协同工作,以加速某些查询。本文提出了一种利用FPGA中的动态部分重构来处理硬件中任意查询的新方法。我们研究如何将SQL查询分解并转换为硬件模块,这些模块在运行时“缝合”在一起,形成流处理数据路径。因此,提出了一组可定制的硬件模块,每个模块都可以实现一系列的SQL操作符。此外,本文还提出了一种基于时隙的部分重配置的大容量FPGA布局方法。最后,通过一个案例分析,我们可以得出主要的瓶颈是与主机的接口。另一个有趣的发现是,与传统数据库不同的是,加速器不会因为更复杂的查询而减速。相反,过滤掉输出结果实际上会加快速度。
Database management systems havetraditionally been implemented entirely in software. However, adding hardwareto database cluster servers to gain more speed has its price. Firstly, the costof the hardware itself, secondly the increased power consumption from thenumerous processors that have to be used. The purpose of this study is toinvestigate how partial run-time reconfiguration in FPGAs can be used toaccelerate databases. It aims to show how an FPGA based query processor canwork in collaboration with a regular software database to accelerate certainqueries. This thesis proposes a novel way of using dynamic partialreconfiguration in FPGAs to process arbitrary queries in hardware. Weinvestigate how SQL queries can be decomposed and turned into hardware modulesthat are ’stitched’ together at runtime to form a stream processing datapath.Consequently, a set of customizable hardware modules that each can implement arange of SQL operators are presented. In addition, the thesis gives a methodfor floorplanning a high capacity FPGA for slot based partial reconfiguration.In the end, by the help of a case study we can conclude that the mainbottleneck is the interface to the host computer. Another interesting findingis that unlike conventional databases, the accelerator is not slowed down by amore complex query. On the contrary, filtering out results actually speeds itup.
- 引言
- Maxeler系统描述
- 重配置
- 概念与设计决定
- 具体实现
- 结果
- 结论
附录 文件系统开销的Matlab脚本
附录 模块库的VHDL代码
附录 整数比较模块的VHDL代码
附录 简单模式匹配模块的VHDL代码
附录 长字符串模式匹配模块的VHDL代码
附录 生成静态系统的GoAhead脚本
附录 生成部分模块的GoAhead脚本
更多精彩文章请关注公众号: