在模式辨识处理系统中用于电力管理的方法及系统的制作方法_3

文档序号:8287841阅读:来源:国知局
环或反馈配置的情况中,在其自身上游)的第一节点是指其中第一节点可启动所述一或多个其它节点(或在循环的情况中,可启动其自身)的情境。类似地,“下游”是指其中在一或多个其它节点下游(或在循环的情况中,在其自身下游)的第一节点可通过所述一或多个其它节点启动(或在循环的情况中,可通过其自身启动)的关系。因此,术语“上游”及“下游”在本文中用以指一或多个节点之间的关系,但是这些术语并不排除使用循环或节点之间的其它非线性路径。
[0046]在图90中,根节点92可最初经启动且在输入数据匹配来自根节点92的边缘98时可启动下游节点94。当输入数据匹配来自节点94的边缘98时,节点94可启动节点96。在接收输入数据时,可以此方式启动贯穿图90的节点94、96。终端节点96对应于输入数据中的所关注序列的匹配。因此,启动终端节点96指示已接收所关注序列作为输入数据。在FSM点阵30实施模式辨识功能的上下文中,到达终端节点96可指示已在输入数据中检测到所关注的特定模式。
[0047]在一实例中,每一根节点92、标准节点94及终端节点96可对应于FSM点阵30中的可配置元件。每一边缘98可对应于可配置元件之间的连接。因此,转变到另一标准节点94或终端节点96 (例如,具有连接到另一标准节点94或终端节点96的边缘98)的标准节点94对应于转变到(例如,将输出提供到)另一可配置元件的可配置元件。在一些实例中,根节点92不具有对应可配置元件。
[0048]如应了解,虽然节点92被描述为根节点且节点96被描述为终端节点,但是可无须存在特定“开始”或根节点,且可无须存在特定“结束”或输出节点。换句话说,任何节点均可为起始点,且任何节点可提供输出。
[0049]当编程FSM点阵30时,可配置元件中的每一者还可处于作用中或非作用中状态。给定可配置元件在非作用中时不对对应数据输入块52处的输入数据作出反应。作用中可配置元件可对数据输入块52处的输入数据作出反应,且当输入数据匹配可配置元件的设定时可启动下游可配置元件。当可配置元件对应于终端节点96时,可配置元件可耦合到输出块54以将匹配的指示提供到外部装置。
[0050]经由编程接口 56加载到FSM点阵30上的图像可配置所述可配置元件及专用元件以及所述可配置元件与专用元件之间的连接,使得基于对数据输入块52处的数据作出的反应通过节点的循序启动实施所要FSM。在一实例中,除非通过上游可配置元件重新启动,否则可配置元件保持作用中达单个数据循环(例如,单个字符、字符集合、单个时钟循环)且然后变为非作用中。
[0051]可认为终端节点96存储经压缩的过去事件历史。例如,需要到达终端节点96的输入数据的一或多个模式可由所述终端节点96的启动来表示。在一实例中,由终端节点96提供的输出是二进制的,例如,输出指示是否已匹配所关注模式。在图90中终端节点96对标准节点94的比率可相当小。换句话说,虽然在FSM中存在高复杂度,但是比较而言,FSM的输出可为小的。
[0052]在一实例中,FSM点阵30的输出可包括状态向量。状态向量包括FSM点阵30的可配置元件的状态(例如,启动或未经启动)。在另一实例中,状态向量可包含可配置元件的全部或子集的状态(无论可配置元件是否对应于终端节点96)。在一实例中,状态向量包含对应于终端节点96的可配置元件的状态。因此,输出可包含由图90的全部终端节点96提供的指示的集合。可将状态向量表示为字,其中由每一终端节点96提供的二进制指示包括所述字的一个位。终端节点96的这种编码可对FSM点阵30提供检测状态(例如,是否已检测到所关注序列及已检测到何种所关注序列)的有效指示。
[0053]如上文提及,FSM点阵30可经编程以实施模式辨识功能。例如,FSM点阵30可经配置以辨识输入数据中的一或多个数据序列(例如,签名、模式)。当通过FSM点阵30辨识所关注数据序列时,可在输出块54处提供所述辨识的指示。在一实例中,模式辨识可辨识一串符号(例如,ASCII字符)以(例如)识别网络数据中的恶意软件或其它数据。
[0054]图7说明阶层式结构100的实例,其中FSM点阵30的两个层级串联耦合且用以分析数据。具体地说,在所说明的实施例中,阶层式结构100包含串联布置的第一 FSM点阵30A及第二 FSM点阵30B。每一 FSM点阵30包含接收数据输入的相应数据输入块52、接收配置信号的编程接口块56及输出块54。
[0055]第一 FSM点阵30A经配置以在数据输入块处接收输入数据,例如原始数据。第一FSM点阵30A对如上所述的输入数据作出反应并在输出块处提供输出。将来自第一 FSM点阵30A的输出发送到第二 FSM点阵30B的数据输入块。然后,第二 FSM点阵30B可基于由第一 FSM点阵30A提供的输出作出反应并提供阶层式结构100的对应输出信号102。两个FSM点阵30A及30B的这种阶层式串联耦合提供将关于经压缩字中的过去事件的数据从第一FSM点阵30A提供到第二 FSM点阵30B的手段。所提供的数据实际上可为已由第一 FSM点阵30A记录的复杂事件(例如,所关注序列)的概要。
[0056]图7中所示的FSM点阵30A、30B的两层级阶层100允许两个独立程序基于相同数据流而操作。所述两级阶层可类似于模型化为不同区域的生物大脑中的视觉辨识。在这种模型下,所述区域实际上是不同模式辨识引擎,其各自执行类似计算功能(模式匹配)但使用不同程序(签名)。通过将多个FSM点阵30A、30B连接在一起,可获得关于数据流输入的增加知识。
[0057]阶层的第一层级(由第一FSM点阵30A实施)可例如直接对原始数据流执行处理。例如,可在第一 FSM点阵30A的输入块52处接收原始数据流,且第一 FSM点阵30A的可配置元件可对所述原始数据流作出反应。阶层的第二层级(由第二 FSM点阵30B实施)可处理来自第一层级的输出。例如,第二 FSM点阵30B在第二 FSM点阵30B的输入块52处接收来自第一 FSM点阵30A的输出块54的输出,且第二 FSM点阵30B的可配置元件可对第一 FSM点阵30A的输出作出反应。因此,在此实例中,第二 FSM点阵30B并不接收原始数据流作为输入,而是接收由如由第一 FSM点阵30A确定的原始数据流匹配的所关注模式的指示。第二FSM点阵30B可实施辨识来自第一 FSM点阵30A的输出数据流中的模式的FSM。应了解,除了接收来自FSM点阵30A的输出以外,第二 FSM点阵30B还可接收来自多个其它FSM点阵的输入。同样地,第二 FSM点阵30B可接收来自其它装置的输入。第二 FSM点阵30B可组合这些多个输入以产生输出。
[0058]图8说明编译器将源代码转换为用于配置FSM点阵(例如点阵30)以实施FSM的图像的方法110的实例。方法110包含:将源代码剖析为语法树(方框112);将语法树转换为自动机(方框114);优化所述自动机(方框116);将所述自动机转换为接线对照表(netlist)(方框118);将所述接线对照表放置于硬件上(方框120);路由所述接线对照表(方框122)及发布所得图像(方框124)。
[0059]在一实例中,编译器20包含允许软件开发者产生图像以实施FSM点阵30上的FSM的应用编程接口(API)。编译器20提供将源代码中的正则表达式的输入集合转换为经配置以配置FSM点阵30的图像的方法。编译器20可通过用于具有冯?诺伊曼架构的计算机的指令加以实施。这些指令可使计算机上的处理器12实施编译器20的功能。例如,所述指令在由处理器12执行时可使处理器12对可由处理器12存取的源代码执行如方框112、114、116、118、120、122 及 124 中描述的动作。
[0060]在一实例中,源代码描述用于识别符号群组内的符号模式的搜索字符串。为描述搜索字符串,源代码可包含多个正则表达式(regex)。正则表达式可为用于描述符号搜索模式的字符串。正则表达式广泛用于各种计算机领域中,例如编程语言、文本编辑器、网络安全及其它领域。在一实例中,由编译器支持的正则表达式包含用于分析未经结构化数据的准则。未经结构化数据可包含自由形式的数据且不具有应用于数据内的字的索引。字可包含数据内可打印及不可打印的字节的任何组合。在一实例中,编译器可支持多种不同源代码语言以用于实施包含Perl (例如,Perl可兼容正则表达式(PCRE) )、PHP、Jave及.NET语言的正则表达式。
[0061]在方框112处,编译器20可剖析源代码以形成关系紧密的运算符的布置,其中不同类型的运算符对应于由源代码实施的不同函数(例如,由源代码中的正则表达式实施的不同函数)。剖析源代码可产生源代码的通用表示。在一实例中,通用表示包括呈称作语法树的树形图的形式的源代码中的正则表达式的经编码表示。本文中描述的实例引用作为语法树(亦称作“抽象语法树”)的布置,然而在其它实例中,可使用具体语法树或其它布置。
[0062]如上所述,因为编译器20可支持源代码的多种语言,所以剖析将源代码转换为非语言特定表示(例如语法树)而不顾及语言。因此,通过编译器20进行的进一步处理(方框114、116、118、120)可从共同输入结构发挥作用,而不顾及源代码的语言。
[0063]如上所述,语法树包含关系紧密的多个运算符。语法树可包含多种不同类型的运算符。例如,不同运算符可对应于由源代码中的正则表达式实施的不同函数。
[0064]在方框114处,将语法树转换为自动机。自动机包括FSM的软件模型,且因此可分类为确定性或非确定性。确定性自动机在给定时间具有单个执行路径,而非确定性自动机具有多个并行执行路径。自动机包括多个状态。为了将语法树转换为自动机,语法树中的运算符及运算符之间的关系转换为状态,其中所述状态之间具有转变。在一实例中,可部分基于FSM点阵30的硬件而转换自动机。
[0065]在一实例中,用于自动机的输入符号包含字母表的符号、数字O到9及其它可打印字符。在一实例中,输入符号是由字节值O到255 (包含O及255)表示。在一实例中,自动机可表示为有向图,其中所述图的节点对应于状态集合。在一实例中,输入符号α上从状态P到状态q的转变(即,δ (ρ, α ))是由从节点p到节点q的有向连接展示。在一实例中,自动机的反转产生新自动机,其中某个符号α上的每一转变P —q在相同符号上反转q —P。在反转中,开始状态变为最终状态,且最终状态变为开始状态。在一实例中,由自动机辨识(例如,匹配)的语言是在循序地输入到自动机中时将到达最终状态的全部可能字符串的集合。由自动机辨识的语言中的每一字符串追踪从开始状态到一或多个最后状态的路径。
[0066]在方框116处,在建构自动机之后,所述自动机经优化以减小其复杂度及大小等等。可通过组合冗余状态来优化自动机。
[0067]在方框118处,将经优化的自动机转换为接线对照表。将所述自动机转换为接线对照表将所述自动机的每一状态映射到FSM点阵30上的硬件元件(例如,SME 34、36、其它元件)并确定硬件元件之间的连接。
[0068]在方框120处,放置接线对照表以选择目标装置的对应于接线对照表的每一节点的特定硬件元件(例如,SME 34、36、专用元件58)。在一实例中,放置基于FSM点阵30的一般输入及输出约束来选择每一特定硬件元件。
[0069]在方框122处,路由所放置的接线对照表以确定用于可配置交换元件(例如,块间交换元件40、块内交换元件42及行内交换元件44)的设定,以将选定硬件元件親合在一起以实现由接线对照表描述的连接。在一实例中,通过确定FSM点阵30的将用以连接选定硬件元件的特定导体及用于可配置交换元件的设定的特定导体来确定用于可配置交换元件的设定。与方框120处的放置相比,路由可考虑硬件元件之间的连接的更多特定限制。因此,给定FSM点阵30上的导体的实际限制,路由可调整如通过全局放置确定的一些硬件元件的位置以作出适当连接。
[0070]一旦放置及路由接线对照表,便可将所述经放置及路由的接线对照表转换为用于配置FSM点阵30的多个位。所述多个位在本文中被称为图像(例如二进制图像)。
[0071]在方框124处,通过编译器20发布图像。图像包括用于配置FSM点阵30的特定硬件元件的多个位。可将位加载到FSM点阵30上以配置SME 34、36、专用元件58及可配置交换元件的状态,使得经编程FSM点阵30实施具有由源代码描述的功能性的FSM。放置(方框120)及路由(方框122)可将FSM点阵30中的特定位置处的特定硬件元件映射到自动机中的特定状态。因此,图像中的位可配
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1