论文部分内容阅读
XML技术作为信息交换的有力工具,近年来在数据库和网络服务等领域得到广泛应用。XML解析是XML技术中的关键任务,关系着XML应用的性能。已有的市场化XML解析器通常都是软件实现,串行方式进行解析。为了加速XML解析,已有研究者引进了软件并行解析方法,提供多线程提升性能。不过限于处理器个数与性能,软件实现方法还是不能完全满足大量并行应用的需求。通过硬件提升处理性能是一种可行的技术手段。近年来有研究者使用FPGA执行XML解析,为一个XML文档提供硬件进行串行解析,没有充分利用硬件高度并行的特点,因此性能提高有限。本文提出了并行投机XML解析的思想,以细粒度并行的方法加速解析过程。本文设计了子文件划分算法,把一个XML文件划分为多个子任务分配给并行硬件执行单元进行并行解析。在不确定XML文件语法语义正确的情况下,投机在内存中构造DOM树并交给硬件执行,以加大资源利用率与提升性能。本文在ML 505 FPGA板子上实现了并行投机XML硬件解析器PSDXP,包括并行语法检查、并行DOM树构造、并行语义检查三个模块,支持125 MHZ频率下运行,并测试了两进程并行版本PSDXPx2和四进程并行版本PSDXPx4。PSDXPx2使用了5%的Slice Register,9%的Slice LUT,8%的Block RAM,和XPA相比,Slice Register是其2.657倍,Slice LUT是其2.639倍。PSDXPx4使用了11%的Slice Register,19%的Slice LUT, 17%的Block RAM,和XPA相比,Slice Register是其6.416倍,Slice LUT是其5.895倍。实验表明,与3.16 GHZ频率下运行的现今性能最优的软件实现XML解析器RapidXML相比,PSDXPx4平均Gbps是RapidXML的1.342倍,平均CPB是35.93倍。和同主频运行的FPGA实现XML解析器XPA相比,PSDXPx4性能是XPA的3.992倍。因而本文提出的硬件加速的并行投机XML解析器,在性能上明显优于软件实现与现有硬件实现的XML解析器,且资源使用较少,有很好的扩展能力。