搜索存储在存储器中的数据的方法和系统技术方案

技术编号:18426489 阅读:41 留言:0更新日期:2018-07-12 02:02
一种用于搜索存储在存储器中的数据的方法,该方法包括接收regex搜索请求,生成包括与regex搜索请求对应的基本regex运算的解析树,在相应的时间步中单独分析所生成的解析树的基本regex运算中的每一个,通过使用转换表确定数据是否存在、并使用反向转换表确定数据的存储器地址位置而与确定与所分析的基本regex运算对应的数据的存储器地址位置;以及,在分析所生成的解析树的所有基本regex运算后,输出匹配regex搜索请求的数据。

Method and system for searching data stored in memory

A method for searching data stored in memory, which includes receiving a regex search request, generating an analytic tree that includes a basic regex operation corresponding to a regex search request, separately analyzing each of the basic regex operations of the generated parse tree in the corresponding time step, and determining the number by using the conversion table. According to whether or not, the location of the memory address of the data is determined by the use of the reverse conversion table, and the location of the memory address of the data that is determined with the basic regex operation analyzed. And, after analyzing all the basic regex operations of the generated parse tree, the data is output matching the regex search request.

【技术实现步骤摘要】
搜索存储在存储器中的数据的方法和系统相关申请的交叉引用该申请要求2017年1月4日提交的美国临时专利申请第62/442,324号的优先权,通过引用将该美国临时专利申请的全部内容并入本文。
根据本专利技术的实施例的一个或多个方面一般涉及正则表达式搜索,并且涉及用于原位正则表达式搜索的存储设备。
技术介绍
数据去重(deduplication)或者数据重复消除指减少存储器装置中的冗余数据以由此降低存储装置的容量成本。在数据去重中,数据文件被分成一个或多个数据组或区。通过将多个由相同数据组成的数据块与单个存储的数据块相关联,数据块的重复备份可以通过计算机存储器减少或消除,由此减小存储器装置中的冗余的数据备份的数量。因此,如果重复的数据备份可以减少到单个数据备份,则在使用相同量的物理资源时,存储器装置的总体可用容量增大。因为存储器装置的结果的经济化允许数据重写计算减少,并且因为已经存储在存储器中的重复数据块的写入请求可以被省略,通过有效地增大写入耐久性,实施数据去重的存储器装置的使用寿命可以被延长。数据去重的传统方法常被用于硬盘驱动器。然而,感兴趣的是,在易失性存储器(诸如动态随机存储器(DRAM))的区域中提供细粒去重。在数据搜索领域中,正则表达式(regularexpression)(例如,简写为“regex”或“regexp”)是一种特殊文本字符串,用于在搜索时描述搜索模型以允许找到某些数据的模型和组。正则表达式(“regex”)运算可以包括子串匹配和/或模型匹配。因此,regex运算被广泛用在许多现代应用和许多领域中,诸如网络安全、文本分析、生物信息学和金融。基于硬件的regex引擎的传统方案的问题包括:由于串流方法引起的、并且在NFAvsDFA技术之间低性能,DFA尽管具有相对低的性能,但因其低复杂性通常是优选的。此外,应注意的是,DFA在给定时间限制状态机处于单状态,而在状态机进入多状态时,NFA允许并行状态检索。另外,基于硬件的regex引擎实施方式的传统方案的问题在于,它们仍然具有有限的存储容量,并且它们需要串流数据以寻找regex匹配,同时具有高延迟、高能量和相对低的性能。在
技术介绍
部分中公开的以上信息仅是增强对本专利技术的背景的理解,并且因此其可以包含不构成现有技术的信息。
技术实现思路
本公开的实施例的方面涉及用于存储器内侧的原位模型匹配和子串匹配的系统和方法。根据本专利技术的实施例,提供一种用于搜索存储在存储器中的数据的方法,该方法包括:接收regex搜索请求;生成包括与regex搜索请求对应的基本regex运算的解析树;在相应的时间步中单独分析所生成的解析树的基本regex运算中的每一个;通过使用转换表确定与所分析的基本regex运算对应的数据的存储器地址位置,以确定数据是否存在;并且,使用反向转换表确定数据的存储器地址位置;以及,在分析所生成的解析树的所有基本regex运算之后,输出匹配regex搜索请求的数据。所述方法可以进一步包括使用逻辑门来处理基本regex运算,并且基本regex运算可以包括串联运算、或运算、闭包运算或括号运算中的至少一个种。接收regex搜索请求可以包括在计算机应用程序处接收regex搜索请求。生成包括基本regex运算的解析树可以包括在驱动器处接收regex搜索请求和使用驱动器来生成解析树。输出匹配regex搜索请求的数据可以包括生成与数据对应的数值和地址位置。确定与所分析的基本regex运算对应的数据的存储器地址位置可以包括使用指针指示数据的起始存储地址,并且使用计数器来指示从具有数据的起始存储地址起的存储地址的数量。所述方法可以进一步包括以去重格式存储数据,其中使用相同的逻辑来存储数据和生成解析树。所述方法可以进一步包括:设定最小子串匹配能力;提供滚动窗口,其覆盖与regex搜索请求对应的搜索模型的一部分;以及,在滚动窗口内找到匹配时,在滚动窗口内搜索具有在与匹配对应的数据的地址位置紧挨之前或紧随其后的地址位置的数据。根据本专利技术的实施例,提供一种用于搜索存储在存储器中的数据的系统,该系统包括被配置成与主机CPU通信的regex模块的处理器,和在其上存储有指令的存储器,当处理器执行所述指令时,所述指令使处理器接收regex搜索请求,生成包括与regex搜索请求对应的基本regex运算的解析树,在相应的时间步中单独分析生成的解析树的基本regex运算中的每一个,确定与分析的基本regex运算对应的数据的存储器地址位置,并且在所生成的解析树的所有基本regex运算被分析之后,输出匹配regex搜索请求的数据。基本regex运算可以包括串联运算、或运算、闭包运算或括号运算中的至少一个。当被处理器执行时,所述指令可以使处理器通过在计算机应用程序处接收regex搜索请求来接收regex搜索请求。当被处理器执行时,所述指令可以使处理器通过在驱动器处接收regex搜索请求和使用驱动器来生成解析树而生成包括基本regex运算的解析树。当被处理器执行时,所述指令可以使处理器通过使用转换表来确定数据是否存在并使用反向转换表来确定数据的存储器地址位置,从而确定与分析的基本regex运算对应的数据的存储器地址位置。当被处理器执行时,所述指令可以使处理器通过使用指针指示数据的起始存储地址,并且使用计数器来指示从具有数据的起始存储地址起的存储地址的数量,从而确定与分析的基本regex运算对应的数据的存储器地址位置。当被处理器执行时,所述指令可以使处理器通过生成与数据对应的数值和地址位置,从而输出匹配regex搜索请求的数据。根据本专利技术的实施例,提供一种用于搜索存储在存储器中的数据的系统,该系统包括:被配置成接收regex搜索请求的应用程序;被配置成生成包括与regex搜索请求对应的基本regex运算的解析树的驱动器;和regex模块,所述regex模块被配置成在相应的时间步中单独分析所生成的解析树的基本regex运算中的每一个,并且确定与分析的基本regex运算对应的数据的存储器地址位置,其中,应用程序被进一步配置成在所生成的解析树的所有基本regex运算被分析之后,输出匹配regex搜索请求的数据。所述基本regex运算可以包括串联运算、或运算、闭包运算或括号运算中的至少一个。所述驱动器可以被配置成在从应用程序接收regex搜索请求后生成包括基本regex运算的解析树。所述regex模块可以被配置成通过使用转换表确定数据是否存在,并使用反向转换表确定数据的存储器地址位置,从而确定与分析的基本regex运算对应的数据的存储器地址位置。所述regex模块可以被配置成通过使用指针指示数据的起始存储地址,并且使用计数器来指示从具有数据的起始存储地址起的存储地址的数量,从而确定与所分析的基本regex运算对应的数据的存储器地址位置。所述应用程序可以被配置成通过从regex模块接收与数据对应的数值和地址位置而输出匹配regex搜索请求的数据。因此,本专利技术的实施例提供一种新颖的底层架构,其能够在使用动态随机存储器(DRAM)的资源的同时在DRAM内提供原位模型匹配和子串匹配。与传统regex硬件加速器不同,所描述的实施例提供在存储器模块上提供大的存储容量,同时也提供对存储区域去重的能力,其方式本文档来自技高网
...

【技术保护点】
1.一种搜索存储在存储器中的数据的方法,所述方法包括:接收regex搜索请求;生成解析树,所述解析树包括与所述regex搜索请求对应的基本regex运算;在相应的时间步中,单独地分析所生成的解析树的每一个基本regex运算;通过以下方式确定与所分析的基本regex运算对应的数据的存储器地址位置:使用转换表确定所述数据是否存在;并且使用反向转换表确定所述数据的存储器地址位置,所述数据以去重格式存储;以及在分析所生成的解析树的所有基本regex运算之后,输出匹配所述regex搜索请求的数据。

【技术特征摘要】
2017.01.04 US 62/442,324;2017.03.27 US 15/470,7091.一种搜索存储在存储器中的数据的方法,所述方法包括:接收regex搜索请求;生成解析树,所述解析树包括与所述regex搜索请求对应的基本regex运算;在相应的时间步中,单独地分析所生成的解析树的每一个基本regex运算;通过以下方式确定与所分析的基本regex运算对应的数据的存储器地址位置:使用转换表确定所述数据是否存在;并且使用反向转换表确定所述数据的存储器地址位置,所述数据以去重格式存储;以及在分析所生成的解析树的所有基本regex运算之后,输出匹配所述regex搜索请求的数据。2.根据权利要求1所述的方法,进一步包括使用逻辑门处理所述基本regex运算,其中,所述基本regex运算包括串联运算、或运算、闭包运算或括号运算中的至少一个。3.根据权利要求1所述的方法,其中,接收所述regex搜索请求包括在计算机应用程序处接收所述regex搜索请求。4.根据权利要求1所述的方法,其中,生成包括所述基本regex运算的解析树包括:在驱动器处接收所述regex搜索请求;和使用所述驱动器生成所述解析树。5.根据权利要求1所述的方法,其中,输出匹配所述regex搜索请求的数据包括生成与所述数据对应的值和地址位置。6.根据权利要求1所述的方法,其中,确定与所分析的基本regex运算对应的数据的存储器地址位置包括:使用指针指示所述数据的起始存储地址;和使用计数器指示从具有所述数据的所述起始存储...

【专利技术属性】
技术研发人员:KT马拉迪郑宏忠
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国,KR

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

1