基于滑动窗技术的硬件XML解析器制造技术

技术编号:10898297 阅读:165 留言:0更新日期:2015-01-12 19:26
一种基于滑动窗技术的硬件XML解析器,包括:初始化存储单元、栈间寄存器、用于产生滑动窗的数据发射模块、用于将XML文档的字符流提取为令牌的词法分析模块、采用XML语法规则对XML文档的令牌进行检查的格式检查模块和XML文档树构建模块,初始化存储单元与数据发射模块相连并传输XML文档的初始化信息,数据发射模块与词法分析模块相连并传输滑动窗信息,词法分析模块与格式检查模块以及XML文档树构建模块相连并传输令牌信息,XML文档树构建模块与内存相连并传输XML文档树信息,用于提高吞吐率的栈间寄存器设置于各相连模块之间。本发明专利技术极大地提高了XML解析器的工作效率,可以实现较高的解析性能,消耗较低的硬件开销,具备较高的实用性。

【技术实现步骤摘要】
基于滑动窗技术的硬件XML解析器
本专利技术涉及的是一种网络服务和数据库系统等
中需要解析XML文档的应用,具体是一种基于滑动窗技术的硬件XML解析器。
技术介绍
一般来说,服务器需要在XML解析上消耗大量的执行时间,因此XML解析是相关应用的技术瓶颈。目前已有的成熟的XML解析器大都是基于软件技术实现的,解析效率低下。虽然多线程技术可以在一定程度上提高XML解析器的工作效率,但是在传统的通用处理器上,处理一个字符通常需要几十个时钟周期,因此,软件XML解析器无法满足大量的应用需求。为了解决这些问题,学者们开始将目光转向硬件XML解析技术,希望通过利用硬件电路的高度并行性来提高解析效率。已有的硬件XML解析器的性能相对于软件解析器已有了很大的提升,目前性能较好的两款硬件XML解析器分别是:(a)XPA.一般来说,XML解析须经由词法分析、格式检查和构建XML文档树等阶段串行完成。而XPA采用了投机流水的结构,将构建XML文档树提前,使其和格式检查并行执行,有效降低了解析器延迟。(b)PSDXP.PSDXP采用了并行投机的整体架构,将XML文档划分为多个子文档,并复制多套硬件解析单元并行解析子文档,提高了吞吐率。但是上述这些系统分别有着各自无法克服的缺点:XPA的吞吐率较低,无法满足对解析实时性有较高要求的相关应用需求;PSDXP可以通过增加子文档数和硬件解析单元有效地增加解析器的吞吐率,但是其硬件代价过大,不利于推广。经过对现有技术的检索发现,中国专利文献号CN102622432A公开(公告)日2012.08.01,公开了一种XML文档结构概要间的相似性度量方法。为了从结构角度在线快速聚类XML数据流,满足这类算法对内存和时间的较高要求,提供一种XML文档的结构概要以及这种结构概要间的相似性度量方法。该算法将XML文档以SAX格式解析后,借助全局名称‐代码索引表和进行式栈技术将该文档形式化成一个可增量表示的概要数据结构——元素链(NodeList),然后通过一个自定义公式计算两元素链间的相似性。该技术使用SAX解析XML文档,并利用了进行式栈技术获取层值,使得建立结构概要的过程中,内存消耗很小。整个内存消耗基本花费在保存元素链式的聚类结果和全局名称‐索引表上。但该技术的缺陷和不足在于采用SAX格式解析XML文档,其数据在内存中不持久,因此用户不能对文档进行随机访问和修改。
技术实现思路
本专利技术针对现有技术存在的上述不足,提出一种基于滑动窗技术的硬件XML解析器,能够加快XML解析速度的同时尽可能降低硬件开销,实现了基于滑动窗技术的XML解析加速,进一步加快硬件XML解析器的速度,使其能实时满足大量应用需求。本专利技术是通过以下技术方案实现的,本专利技术包括:初始化存储单元、栈间寄存器、用于产生滑动窗的数据发射模块、用于将XML文档的字符流提取为令牌的词法分析模块、采用XML语法规则对XML文档的令牌进行检查的格式检查模块和XML文档树构建模块,其中:初始化存储单元与数据发射模块相连并传输XML文档的初始化信息,数据发射模块与词法分析模块相连并传输滑动窗信息,词法分析模块与格式检查模块以及XML文档树构建模块相连并传输令牌信息,XML文档树构建模块与内存相连并传输XML文档树信息,用于提高吞吐率的栈间寄存器设置于各相连模块之间。所述的数据发射模块包括:依次连接的两个缓冲器单元、数据组以及用于生成滑动窗的控制单元,其中:第一缓冲器单元和第二缓冲器单元采用数据级并行机制,即其输出端分别与数据组相连并输出第一缓冲器单元和第二缓冲器单元的组合信息,从而进一步提高了硬件XML解析器的性能;数据组的输出端与控制单元相连并输出滑动窗信息。所述的格式检查模块包括:元素嵌套检查单元、根元素唯一检查单元和属性名唯一检查单元,其中:元素嵌套检查单元、根元素唯一检查单元和属性名唯一检查单元都与XML文档树构建模块相连,元素嵌套检查单元接收元素名称令牌信息经栈处理将XML文档元素嵌套是否正确的信息输出至XML文档树构建模块,根元素唯一检查单元接收根元素令牌信息经栈处理将XML文档根元素是否唯一的信息输出至XML文档树构建模块,属性名唯一检查单元接收属性名称的令牌信息经布隆滤波器处理将隶属同一元素的属性名是否唯一的信息输出至XML文档树构建模块。本专利技术涉及上述硬件XML解析器的实现方法,包括以下步骤:步骤1)将XML文档初始化在初始化存储单元中。步骤2)设置两个位宽与滑动窗位宽相同的串行相连的第一缓冲器单元、第二缓冲器单元,第一缓冲器单元缓存从初始化存储单元读出的数据,第二缓冲器单元缓存上一周期中第一缓冲器单元缓存的数据。步骤3)数据发射模块将第一、第二缓冲器单元拼接成一个位宽为滑动窗位宽2倍的数据组,并为该数据组字节编址。步骤4)数据发射模块在滑动窗内检测是否存在定界符,其中滑动窗的位置由开始地址和结束地址界定,当未能检测到定界符时,开始地址和结束地址不变,即滑动窗位置不变。所述的结束地址即为检测到的定界符的地址,开始地址由以下公式决定:其中:N为自然常数,即滑动窗的位宽,2N为数据组的位宽,其字节编址为0,1,2,……,2N‐1。步骤5)词法分析模块借助一个有限状态机来提取滑动窗中的XML令牌信息。步骤6)格式检查模块采用栈结构和布隆滤波器来验证元素嵌套是否正确,根元素是否唯一以及隶属同一元素的属性名是否唯一。步骤7)XML文档树是XML查询系统的基础,XML文档树构建模块将有效的令牌信息作为文档树的节点构建XML树结构,并将相关节点信息存入内存。得到如图8所示的存储结构。技术效果与现有技术相比,本专利技术的技术效果包括:1)性能方面:与上述硬件解析器XPA相比,性能提高了67%;与PSDXP相比,性能提高了34%。2)硬件开销方面:硬件开销小,在XilinxVirtex‐6XC6VLX240TFPGA开发板上实现本专利技术所述XML解析器,结果显示本专利技术使用了开发板2%的SliceRegister,5%的SliceLUT和14%的BlockRAM。此外,本专利技术可扩展性好,只要提供足够的硬件资源,解析器可以解析任意大小的XML文档。附图说明图1是XML文档转化为XML文档树的实例示意图。图2是本专利技术结构示意图。图3是由第一、第二缓冲器单元构成的字节寻址数据组示意图。图4是滑动窗产生机制说明示意图。图5是词法分析阶段用于提取令牌的状态机示意图。图6是栈结构实例示意图。图7是布隆滤波器实例示意图。图8是XML文档树的存储结构示意图。具体实施方式下面对本专利技术的实施例作详细说明,本实施例在以本专利技术技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。实施例1如图2所示,本实施例包括:初始化存储单元、栈间寄存器、用于产生滑动窗的数据发射模块、用于将XML文档的字符流提取为令牌的词法分析模块、采用XML语法规则对XML文档的令牌进行检查的格式检查模块和XML文档树构建模块,其中:初始化存储单元与数据发射模块相连并传输XML文档的初始化信息,数据发射模块与词法分析模块相连并传输滑动窗信息,词法分析模块与格式检查模块以及XML文档树构建模块相连并传输令牌信息,XML文档树构建模块与内存相连并传输XM本文档来自技高网
...
基于滑动窗技术的硬件XML解析器

【技术保护点】
一种基于滑动窗技术的硬件XML解析器,其特征在于,包括:初始化存储单元、栈间寄存器、用于产生滑动窗的数据发射模块、用于将XML文档的字符流提取为令牌的词法分析模块、采用XML语法规则对XML文档的令牌进行检查的格式检查模块和XML文档树构建模块,其中:初始化存储单元与数据发射模块相连并传输XML文档的初始化信息,数据发射模块与词法分析模块相连并传输滑动窗信息,词法分析模块与格式检查模块以及XML文档树构建模块相连并传输令牌信息,XML文档树构建模块与内存相连并传输XML文档树信息,用于提高吞吐率的栈间寄存器设置于各相连模块之间。

【技术特征摘要】
1.一种基于滑动窗技术的硬件XML解析器,其特征在于,包括:初始化存储单元、栈间寄存器、用于产生滑动窗的数据发射模块、用于将XML文档的字符流提取为令牌的词法分析模块、采用XML语法规则对XML文档的令牌进行检查的格式检查模块和XML文档树构建模块,其中:初始化存储单元与数据发射模块相连并传输XML文档的初始化信息,数据发射模块与词法分析模块相连并传输滑动窗信息,词法分析模块与格式检查模块以及XML文档树构建模块相连并传输令牌信息,XML文档树构建模块与内存相连并传输XML文档树信息,用于提高吞吐率的栈间寄存器设置于各相连模块之间;所述的格式检查模块包括:元素嵌套检查单元、根元素唯一检查单元和属性名唯一检查单元,其中:元素嵌套检查单元、根元素唯一检查单元和属性名唯一检查单元都与XML文档树构建模块相连。2.根据权利要求1所述的基于滑动窗技术的硬件XML解析器,其特征是,所述的初始化存储单元的位宽与数据发射模块生成的滑动窗的位宽一致。3.根据权利要求1所述的基于滑动窗技术的硬件XML解析器,其特征是,所述的数据发射模块包括:依次连接的两个缓冲器单元、数据组以及用于生成滑动窗的控制单元,其中:第一缓冲器单元和第二缓冲器单元采用数据级并行机制,即其输出端分别与数据组相连并输出第一缓冲器单元和第二缓冲器单元的组合信息,从而进一步提高了硬件XML解析器的性能;数据组的输出端与控制单元相连并输出滑动窗信息。4.根据权利要求1所述的基于滑动窗技术的硬件XML解析器,其特征是,所述的元素嵌套检查单元接收元素名称令牌信息经栈处理将XML文档元素嵌套是否正确的信息输出至XML文档树构建模块,根元素唯一检查单元接收根元素令牌信息经栈处理将XML文档根元素是否唯一的信息输出至XML文档树构建模块,属性名唯一检查单元接收属性名称的令牌信息经布隆滤波器处理将隶属同一元素的属性名是否唯一的信息输出至XML文档树构建模块。5.根据权利要求1所述的基于...

【专利技术属性】
技术研发人员:黄立楠蒋江王畅
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1