基于存储器层次的有限自动机的编译的制作方法_6

文档序号:9263437阅读:来源:国知局
中每个的25%的节点。由于每个每图样NFA 1014a-c的节点可以不同,来自这些每图样NFA 1014a_c中每个的节点数目可以不同。
[0163]这些每图样NFA存储分配设定可以包括一个第一每图样NFA存储分配设定和一个第二每图样NFA存储分配设定。这些层级可以包括一个排序最高的层级和一个排序次高的层级。该第一每图样NFA存储分配设定可以被配置成用于该排序最高的层级。该第二每图样NFA存储分配设定可以被配置成用于该排序次高的层级。该第一每图样NFA存储分配设定可以小于该第二每图样NFA存储分配设定。例如,被表示以用于分布到最高性能存储器的来自每个每图样NFA的节点数目可以是小于被表示以用于最低性能存储器的节点数目(如可以表示无限数目)的一个系统存储器。
[0164]在此披露的实施例可以将在一个给定分布中的节点数目最大化,并且最大化后的数目可以是由这些每图样NFA存储分配设定中的一个被配置成用于一个给定层级的对应的每图样NFA存储分配设定来限制的。例如,由一个每图样NFA存储分配设定表示的节点数目可以是十。于是,包括十个或更多未分布节点的每个每图样NFA将会使十个节点被分布。包括少于十个未分布节点的每个每图样将会分布未分布节点数目中的一个对应的数目。
[0165]图12是一台计算机1200的内部结构的示例的一个框图,其中,可以实现在此披露的各实施例。计算机1200包含一个系统总线1202,其中,总线是用于在计算机或处理系统的组件之间进行数据传输的一组硬件线。系统总线1202实质上是连接计算机系统的不同元件(例如处理器、磁盘存储器、存储器、输入/输出端口、网络端口等等)、使得在这些元件之间能够进行信息传输的一种共享管道。与系统总线1202 —起工作的是一个I/O设备接口 1204,用于将各种输入和输出设备(例如键盘、鼠标、显示器、打印机、扬声器等等)连接到计算机1200。网络接口 1206允许计算机1200连接到附接于网络的各种其他设备。存储器1208提供用于计算机软件指令1210和数据1212的易失性存储,这些指令和数据可以用于实现在此披露的实施例。磁盘存储器1214提供用于计算机软件指令1210和数据1212的非易失性存储,这些指令和数据可以用于实现在此披露的实施例。中央处理器单元1218还与系统总线1202 —起工作并且提供计算机指令的执行。
[0166]在此披露的其他示例实施例可以使用计算机程序产品进行配置;例如,控件可以在软件中编程为实现在此披露的示例实施例。在此披露的其他示例实施例可以包括一种非瞬态计算机可读介质,该介质含有可以由处理器执行的指令并且当执行时致使处理器完成在此描述的方法。应当理解的是,在此描述的这些框图和流程图的元素可以软件、硬件、固件或在将来确定的其他类似的实现方式来实现。此外,在此描述的这些框图和流程图的元素可以在软件、硬件、或固件中以任何方式被组合或拆分。
[0167]应当理解的是,术语“在此”可转移到结合有在此呈现的传授内容的申请或专利中,使得主题、定义或数据在进行此结合的申请或专利中沿用。
[0168]如果在软件中实现,那么软件可以任何能够支持在此披露的示例实施例的语言书写。该软件可以被存储在任何形式的计算机可读介质中,如随机存取存储器(RAM)、只读存储器(ROM)、光盘只读存储器(⑶-ROM)等等中。在工作中,通用或特定用途处理器以本领域中充分已知的方式加载和执行软件。应当理解的是,此外该框图和流程图可以包括更多或更少的元件、不同地安排或取向、或不同地表示。应当理解的是,实现方式可以指框图、流程图、和/或网络图以及展示本发明实施例的执行的框图和流程图的数目。
[0169]虽然通过参考本发明的示例实施例已经具体地示出和描述了本发明,但本领域普通技术人员将会理解在不脱离由所附权利要求书限定的本发明范围的情况下可在形式和细节中做出不同的改变。
【主权项】
1.一种操作性耦合到网络的安全装置,该安全装置包括: 映射到在一个存储器层次中的多个层级的多个存储器,以及操作性耦合到该多个存储器的至少一个处理器,该至少一个处理器被配置成用于: 生成至少一个每图样非确定型有限自动机(NFA),每个每图样NFA是为单个正则表达式图样生成的并且包括一组对应的节点;以及 分布所生成的每个每图样NFA的该组对应的节点的节点,以基于所映射的这些层级和为这些层级配置的每图样NFA存储分配设定来存储在该多个存储器中。2.如权利要求1所述的安全装置,其中,该至少一个处理器被进一步配置成用于基于该分布在该多个存储器中静态地存储所生成的每个每图样NFA的该组对应的节点的这些节点。3.如权利要求1所述的安全装置,其中,生成该至少一个每图样NFA包括指定从一个给定节点经由一个与该给定节点相关联的下一节点地址到一个下一节点的转换,并且该下一节点地址被配置成用于标识该下一节点和分布给该下一节点用于进行存储的该多个存储器中的一个给定存储器。4.如权利要求1所述的安全装置,其中,这些每图样NFA存储分配设定中的每个每图样NFA存储分配设定被配置成用于这些层级中的一个对应的层级,以表示所生成的每个每图样NFA的该组对应的节点的目标数量的唯一节点,以分布用于在该多个存储器中的一个映射到该对应的层级的给定存储器中进行存储。5.如权利要求4所述的安全装置,其中,该组对应的节点中的这些唯一节点是按一种连续方式安排在该至少一个每图样NFA中的一个包括该组对应的节点的给定的每图样NFA内。6.如权利要求4所述的安全装置,其中,每个每图样NFA存储分配设定被配置成用于该对应的层级,其方式为,在为一组正则表达式图样中的每个正则表达式图样生成一个每图样NFA的事件中,使得该给定存储器能够提供足够的存储容量用于存储从所生成的每个每图样NFA表示的该目标数量的唯一节点。7.如权利要求4所述的安全装置,其中,该目标数量的唯一节点是由一个绝对值表示并且是对于每组对应的节点的一个共用值,从而使得每组对应的节点能够具有对于该目标数量的唯一节点的一个相同的值,以便存储在被映射到该对应的层级的该给定存储器中。8.如权利要求4所述的安全装置,其中,该目标数量的唯一节点由一个百分比值来表示,该百分比值用于应用到每组对应的节点的对应的节点总数,从而使得每组对应的节点能够具有对于该目标数量的唯一节点的一个单独的值,以便存储在被映射到该对应的层级的该给定存储器中。9.如权利要求1所述的安全装置,其中,基于该多个存储器的性能排序该多个存储器中的每个存储器以降序被连续地映射到这些层级中的一个对应的层级,并且该多个存储器中的一个性能排序最高的存储器被映射到这些层级中的一个排序最高的层级。10.如权利要求1所述的安全装置,其中,这些每图样NFA存储分配设定包括一个第一每图样NFA存储分配设定和一个第二每图样NFA存储分配设定,这些层级包括一个排序最高的层级和一个排序次高的层级,该第一每图样NFA存储分配设定被配置成用于该排序最高的层级,该第二每图样NFA存储分配设定被配置成用于该排序次高的层级。11.如权利要求1所述的安全装置,其中,分布所生成的每个每图样NFA的该组对应的节点的这些节点包括以一种连续方式分布该组对应的节点中的这些节点,该分布包括: 对该组对应的节点中的这些节点的一个第一分布,用于存储在该多个存储器中的一个第一存储器中,该第一存储器被映射到这些层级中的一个排序最高的层级;以及 对该组对应的节点中的这些节点的一个第二分布,基于在前一分布之后在该组对应的节点中剩余的至少一个未分布节点,每个至少一个第二分布用于存储在该多个存储器中的一个给定存储器中,该给定存储器被映射到这些层级中的一个给定的层级,对于该组对应的节点的这些节点的每一次分布,该给定的层级连续地低于该排序最高的层级。12.如权利要求11所述的安全装置,其中,如果该给定的层级是这些层级中一个排序最低的层级,则该至少一个第二分布中的一个给定的分布包括在该组对应的节点中的所有剩余的未分布节点。13.如权利要求11所述的安全装置,其中,该至少一个处理器进一步被配置成用于将在该第一分布中的节点数目最大化,并且该最大化后的数目可以是由这些每图样NFA存储分配设定中的一个被配置成用于该排序最高的层级的对应的每图样NFA存储分配设定来限制的。14.如权利要求11所述的安全装置,其中,该至少一个处理器进一步被配置成用于将在每个至少一个第二分布中的节点数目最大化,并且该最大化后的数目可以是对于每一次分布由这些每图样NFA存储分配设定中的一个被配置成用于该给定层级的对应的每图样NFA存储分配设定来限制的。15.如权利要求1所述的安全装置,其中,静态地存储每个每图样NFA的该组对应的节点的这些节点,以使得能够用在从网络接收的一个输入流中的多个有效载荷的多个区段来行走每组对应的节点的这些节点,以确定在该输入流中的至少一个正则表达式图样的一次匹配。16.如权利要求15所述的安全装置,其中,该行走基于该组对应的节点的匹配这些有效载荷的区段的单独节点来进行,并且该至少一个处理器进一步被配置成用于基于在一组正则表达式图样中的正则表达式图样总数和与该行走相关联的所希望的性能度量来确定这些每图样NFA存储分配设定。17.如权利要求1所述的安全装置,其中,该至少一个处理器进一步被配置成用于: 基于选自一组正则表达式图样中的每个图样的至少一个子图样来生成一个统一的确定型有限自动机(DFA);以及 将该统一的DFA存储在该多个存储器中的一个给定存储器中。18.如权利要求1所述的安全装置,其中,该多个存储器包括一个第一存储器、一个第二存储器、和一个第三存储器,并且该第一和第二存储器与该至少一个处理器共同定位在一个芯片上,而该第三存储器是定位在该芯片之外的一个外部存储器并且被映射到这些层级中的一个排序最低的层级。19.一种方法,包括: 在至少一个处理器中,该至少一个处理器与多个存储器操作地耦合,该多个存储器映射到操作地耦合到一个网络的一个安全装置中的一个存储器层次中的多个层级: 生成至少一个每图样非确定型有限自动机(NFA),每个每图样NFA是为单个正则表达式图样生成的并且包括一组对应的节点;以及 分布每个每图样NFA的该组对应的节点的节点,以基于所映射的这些层级和为这些层级配置的每图样NFA存储分配设定来存储在该多个存储器中。20.如权利要求19所述的方法,进一步包括基于该分布在该多个存储器中静态地存储所生成的每个每图样NFA的该组对应的节点的这些节点。21.如权利要求19所述的方法,其中,生成该至少一个每图样NFA包括指定从一个给定节点经由一个与该给定节点相关联的下一节点地址到一个下一节点的转换,并且配置该下一节点地址用于标识该下一节点和分布给该下一节点用于进行存储的该多个存储器中的一个给定存储器。22.如权利要求19所述的方法,进一步包括配置这些每图样NFA存储分配设定中的每个每图样NFA存储分配设定用于这些层级中的一个对应的层级,以表示所生成的每个每图样NFA的该组对应的节点的目标数量的唯一节点,以分布用于在该多个存储器中的一个映射到该对应的层级的给定存储器中进行存储。23.如权利要求22所述的方法,其中,该组对应的节点中的这些唯一节点是按一种连续方式安排在该至少一个每图样NFA中的一个包括该组对应的节点的给定的每图样NFA内。24.如权利要求22所述的方法,进一步包括对于该对应的层级配置每个每图样NFA存储分配设定,其方式为,在为一组正则表达式图样中的每个正则表达式图样生成一个每图样NFA的事件中,使得该给定存储器能够提供足够的存储容量用于存储从所生成的每个每图样NFA表示的该目标数量的唯一节点。25.如权利要求22所述的方法,其中,该目标数量的唯一节点是由一个绝对值表示并且是对于每组对应的节点的一个共用值,从而使得每组对应的节点能够具有对于该目标数量的唯一节点的一个相同的值,以便存储在被映射到该对应的层级的该给定存储器中。26.如权利要求22所述的方法,进一步包括经由一个百分比值来表示该目标数量的唯一节点,该百分比值用于应用到每组对应的节点的对应的节点总数,从而使得每组对应的节点能够具有对于该目标数量的唯一节点的一个单独的值,以便存储在被映射到该对应的层级的该给定存储器中。27.如权利要求19所述的方法,其中,基于该多个存储器的性能排序该多个存储器中的每个存储器以降序被连续地映射到这些层级中的一个对应的层级,并且该多个存储器中的一个性能排序最高的存储器被映射到这些层级中的一个排序最高的层级。28.如权利要求19所述的方法,其中,这些每图样NFA存储分配设定包括一个第一每图样NFA存储分配设定和第二每图样NFA存储分配设定,这些层级包括一个排序最高的层级和一个排序次高的层级,该第一每图样NFA存储分配设定被配置成用于该排序最高的层级,该第二每图样NFA存储分配设定被配置成用于该排序次高的层级。29.如权利要求19所述的方法,其中,分布所生成的每个每图样NFA的该组对应的节点的这些节点包括以一种连续方式分布该组对应的节点中的这些节点,该分布包括: 对该组对应的节点中的这些节点的一个第一分布,用于存储在该多个存储器中的一个第一存储器中,该第一存储器被映射到这些层级中的一个排序最高的层级;以及 对该组对应的节点中的这些节点的一个第二分布,基于在前一分布之后在该组对应的节点中剩余的至少一个未分布节点,每个至少一个第二分布用于存储在该多个存储器中的一个给定存储器中,该给定存储器被映射到这些层级中的一个给定的层级,对于该组对应的节点的这些节点的每一次分布,该给定的层级连续地低于该排序最高的层级。30.如权利要求29所述的方法,其中,如果该给定的层级是这些层级中一个排序最低的层级,则该至少一个第二分布中的一个给定的分布包括在该组对应的节点中的所有剩余的未分布节点。31.如权利要求29所述的方法,进一步包括将在该第一分布中的节点数目最大化,并且该最大化后的数目可以是由这些每图样NFA存储分配设定中的一个被配置成用于该排序最高的层级的对应的每图样NFA存储分配设定来限制的。32.如权利要求29所述的方法,进一步包括将在每个至少一个第二分布中的节点数目最大化,并且该最大化后的数目是对于每一次分布由这些每图样NFA存储分配设定中的一个被配置成用于该给定层级的对应的每图样NFA存储分配设定来限制的。33.如权利要求19所述的方法,进一步包括静态地存储每个每图样NFA的该组对应的节点的这些节点,使得能够用在从网络接收的一个输入流中的多个有效载荷的多个区段来行走每组对应的节点的这些节点,以确定在该输入流中的至少一个正则表达式图样的一次匹配。34.如权利要求33所述的方法,其中,该行走基于该组对应的节点的匹配这些有效载荷的区段的单独节点来进行,并且该方法进一步包括基于在一组正则表达式图样中的正则表达式图样总数和与该行走相关联的所希望的性能度量来确定这些每图样NFA存储分配设定。35.如权利要求19所述的方法,进一步包括: 基于选自一组正则表达式图样中的每个图样的至少一个子图样来生成一个统一的确定型有限自动机(DFA);以及 将该统一的DFA存储在该多个存储器中的一个给定存储器中。36.如权利要求19所述的方法,其中,该多个存储器包括一个第一存储器、一个第二存储器、和一个第三存储器,并且该第一和第二存储器与该至少一个处理器共同定位在一个芯片上,而该第三存储器是定位在该芯片之外的一个外部存储器并且被映射到这些层级中的一个排序最低的层级。37.一种非瞬态计算机可读介质,其上编码有一个指令序列,该指令序列在由操作性耦合到多个存储器的一个处理器加载并执行时致使该处理器: 生成至少一个每图样非确定型有限自动机(NFA),每个每图样NFA是为单个正则表达式图样生成的并且包括一组对应的节点;以及 分布每个每图样NFA的该组对应的节点的节点,以基于所映射的这些层级和为这些层级配置的每图样NFA存储分配设定来存储在该多个存储器中。
【专利摘要】本发明的各实施例涉及基于存储器层次的有限自动机的编译。至少一个每图样非确定型有限自动机可以对于单个正则表达式图样而生成并且可以包括一组对应的节点。所生成的每个每图样NFA的该组对应的节点的节点可以基于映射到该多个存储器的层级和被配置成用于这些层级的单图样NFA存储分配设定而被分配用于存储在该多个存储器中,从而优化用于匹配在一个输入流中的正则表达式图样的运行时间性能。
【IPC分类】H04L29/06
【公开号】CN104980418
【申请号】CN201410433402
【发明人】R·戈亚尔, S·L·比拉
【申请人】凯为公司
【公开日】2015年10月14日
【申请日】2014年8月28日
【公告号】US20150295889
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1