具有状态的串行比特流正则表达式的制作方法_4

文档序号:9578396阅读:来源:国知局
可以利用符号呈现为覆盖图、单独的符号等 等。正则表达式引擎1015还可以包括状态信息1025。状态信息1025可以被用于定义正 则表达式引擎1015何时以及如何操作。例如,可以针对分组定义正则表达式,并且正则表 达式可以具有定义分组的开始和结尾的状态信息。在没有该状态信息的情况下,组合状态 /比特流内的相同比特序列将不匹配正则表达式,并且因此不被识别为输出数据。
[0091] 在另一示例中,正则表达式引擎1015可以被用于搜索、标记或以其他方式标识组 合状态/比特流、相关联的数据等等中的模式。例如,在示波器上,可以针对特定比特序列 来搜索表示所获取的信号的数字化波形。数字化波形的相关联的序列可以通过用户接口来 呈现。可替换地,可以标记相关联的序列。
[0092] 在另一示例中,正则表达式引擎1015可以被用于过滤所获取的数据。例如,如在 下文将进一步详细描述的那样,正则表达式可以定义分组结构和仅匹配于来自特定设备的 分组的匹配值。数据的获取可以被过滤为使得仅存储匹配的获取。
[0093] 在另一实施例中,正则表达式引擎1015的输出可以不止是仅匹配。例如,串行比 特流可以与所获取的数字化波形相关联。数字化波形可以被表示为值相对时间的关系。当 匹配被输出时,可以将附加的数据(诸如相关联的数字化波形内的时间)添加到输出。因此, 可以调节用户接口 1020以反映时间。
[0094] 所描述的图10类似于图1,但是被修改为包括状态信息。图2-9中所示的实施例 可以被类似地修改以支持状态信息,尽管这样的实施例在本文中未被明确示出。
[0095] 与 2010 年 11 月 18 日提交的题为"SERIALBITSTREAMRE⑶LAREXPRESSION ENGINE"的序列号为12/949, 703的母案美国专利申请中描述的正则表达式语法相对比,正 则表达式语法可以被增强以添加附加语义。正则表达式语法现在可以描述为如下:
除正则表达式中的状态元素的包括之外,该正则表达式语法还更靠近在规范文档中如 何典型地定义总线。通过以更类似于总线规范的方式定义正则表达式语法,对于用户而言, 将具体正则表达式定义为在组合状态/比特流内进行标识是更加容易的,因为用户一般对 于总线规范是熟悉的。
[0096]如在 2010 年 11 月 18 日提交的题为"SERIALBITSTREAMRE⑶LAREXPRESSION ENGINE"的序列号为12/949, 703的母案美国专利申请中的那样,匹配比特可以被定义为1、 〇或无所谓的X。正则表达式可以是整数值,具有或没有指定宽度。正则表达式可以是名为 State的项。正则表达式可以是开始状态或停止状态("Γ)。正则表达式可以是字段 名称,具有或没有指定宽度并且按最高有效位到最低有效位的次序或最低有效位到最高有 效位的次序。正则表达式可以继之以正则表达式。可替换的正则表达式可以由0R"I"操 作符来定义。一个或多个" + "或零或多个操作符可以被用于潜在地定义重复的正则表 达式。"? "操作符可以意指零或一个在先的正则表达式。操作符后面的整数可以意指 正则表达式的重复数目。括号可以被用于对正则表达式或正则表达式系列进行分组。尽管 以上已经描述了特定的语法,但是实施例可以使用其他语法。特别地,下文将给出利用其他 语法的另外的示例。另外,由正则表达式引擎13所使用的语法可以但不需要实现以上语法 或以下语法的所有方面。
[0097] 虽然分组的内容可以如在2010年11月18日提交的题为"SERIALBITSTREAM RE⑶LAREXPRESSIONENGINE"的序列号为12/949,703的母案美国专利申请中描述的那样 来定义,但是这不一定给出足够的信息以正确地解码串行比特流。例如,知晓分组在哪里开 始和停止是必要的。否则,串行比特流可能仅仅包括随机噪声,而不是实际数据。
[0098] 图11示出了图10的状态标识逻辑可以将状态标识为逻辑表达式。例如,当使用 I2C总线时,分组的开始可以被标识为逻辑表达式1105,其中数据信号正下降并且时钟信 号为高。类似地,分组的结尾可以被定义为事件,其中数据信号正上升并且时钟信号为高。 作为软件,这些事件可以被描述为: 事件S=fall(sda) &&scl== 1; 事件P=rise(sda) &&scl== 1; 这些事件可以被用于扫描串行比特流并且标识状态,将串行比特流中的那些信息段改 变成表示开始和结束状态的令牌(从而产生组合状态/比特流)。这些状态然后可以被用作 用于分组的正则表达式的部分。例如,然后可以将分组定义为: 分组P7 {S,Addr:7,RW,A, (Data:8,A)*,P}; 以上针对分组P7的描述的仔细回顾将揭示出分组P7使用与在2010年11月18日提 交的题为"SERIALBITSTREAMREGULAREXPRESSIONENGINE"的序列号为 12/949, 703 的母 案美国专利申请中描述的那个句法相比不同的句法:具体地,Addr和Data字段使用不同的 句法。但是本领域技术人员将认识到,不同的句法描述相同的概念:以上句法中的Addr:7 在功能上等同于早前的句法中的[X*7]:Addr。
[0099] 虽然图11示出仅一个逻辑表达式1105,但是本领域技术人员将认识到可以存在 被定义为事件的任何数目的状态。
[0100] 与图11相对比,图12示出了使用外部表达式1205定义的图10的状态标识逻辑。 例如,当串行比特流匹配特定比特模式时可以标识分组的开始和结束。同样,虽然图12仅 示出一个外部函数1205,但是本领域技术人员将认识到可以存在被定义为正则表达式的任 何数目的正则状态。
[0101] 此外,图11和12中所示的可替换的实施例不相互排斥。也就是说,一些状态可以 被定义为逻辑表达式并且一些状态可以被定义为外部函数。此外,状态可以以其他方式被 潜在地定义,并且这些其他定义可以如所期望的那样与逻辑表达式和外部函数混合。
[0102] 图13示出将第二正则表达式应用于第一正则表达式的输出的图10的正则表达式 引擎。在图13中,正则表达式引擎1015包括正则表达式1305,其可以被应用于如在2010 年11月18日提交的题为"SERIALBITSTREAMRE⑶LAREXPRESSIONENGINE"的序列号为 12/949, 703的母案美国专利申请中描述的组合状态/比特流。正则表达式1305的应用可 以产生临时结果1310,其然后可以被用作对正则表达式1315的输入。以此方式,可以使用 多个正则表达式来顺序地处理组合状态/比特流。通过按顺序使用多个正则表达式,可以 实现各种编码:例如,曼彻斯特编码。曼彻斯特编码使用两个"比特"(实际上,信号水平转 变以表示信息的单个比特)。因此,第一正则表达式可以将组合状态/比特流转换成如曼彻 斯特编码内的比特模式,并且第二正则表达式然后可以从曼彻斯特比特流中解码信息。在 AndrewS.Tanenbaum编著的计算机网络第三版第279-80页可以找到更多信息(? 1996, 由Prentice-Hall,Inc.出版),其出于全部目的而通过引用并入本文。
[0103] 作为如何解码曼彻斯特编码的示例,系统接收串行比特流,诸如: 1001010110010110101010 两比特值10可以与一比特值1匹配并且由其替代。两比特值01可以与一比特值0匹 配并且由其替代。这创建经二进制编码的新的比特流。
[0104] 除对齐问题之外,以下代码将曼彻斯特转换成仅将使用曼彻斯特的比特流的部分 编码成二进制比特流的协议。
[0105]在以上示例中,"D"指代数据状态(DataState),"[(l:2 (0:1)I2:2 (1:1))+]" 创建新的二进制流," {Data: 16} "将新的比特流划分成16比特字,并且" + "重复匹配一次 或多次。字段定义"〇lb:2 (0:1)"告知匹配两比特1并且返回一比特0。字段定义"10b:2 (1:1) "告知匹配两比特2并且返回一比特1。1或2是匹配:任何其他情况导致匹配失败。 这被重复一次或多次(直至匹配失败)并且创建馈送至后续字段匹配定义的新的二进制流。
[0106] 图13示出两个正则表达式1305和1315的应用。但是本领域技术人员将认识到, 可以如所期望的那样存在任何数目的串行应用的正则表达式。因此,可以存在三个、四个或 甚至更多的正则表达式,每一个被应用于先前的正则表达式的输出,其中最终的正则表达 式的输出为输出数据。
[0107] 与图13相对比,其中顺序地将正则表达式应用于来自先前的正则表达式的数据, 还可能建立不同的正则表达式,其可以匹配组合状态/比特流内的不同信息。也就是说,不 保证测试和测量仪器内的任何特定正则表达式可能必然匹配组合状态/比特流中的任何 (更不必说全部)数据。例如,如果测试和测量仪器与以不同方式编码的数据一起使用,则这 可以发生。为了解决该情形,测试和测量仪器可以包括多于一个正则表达式,其中的任一个 可以被用于匹配来自组合状态/比特流的信息。图14示范了该情形。
[0108] 在图14中,图10的正则表达式引擎可以将多于一个正则表达式应用于组合状态 /比特流。具体地,正则表达式引擎1015可以包括正则表达式1405和1410,其中的每一个 可以潜在地匹配组合状态/比特流内的数据。在一个实施例中,正则表达式引擎1015可以 依次应用正则表达式1405和1410中的每一个,直至组合状态/比特流匹配正则表达式之 一。应用正则表达式1405和1410的次序可以以任何期望的方式来定义:例如,按它们的 定义次序。在另一实施例中,正则表达式引擎1015可以同时应用所有正则表达式1405和 1410,从而寻找匹配。在又一实施例中,组合状态/比特流的不同部分可以匹配不同的正则 表达式。
[0109] 虽然图14示出两个正则表达式1405和1410,但是本领域技术人员将认识到,可以 存在正则表达式引擎1015内的任何数目的正则表达式。
[0110] 本领域普通技术人员将认识到,以上描述的正则表达式引擎本质上是图灵机 (Turingmachine)的形式。图灵机是使用在计算机科学中的抽象概念。图灵机包括划分成 单元的带:该带一般被假定为在长度上是无限的。图灵机还具有可以被用于从带上的单个 单元读取和/或写入符号的头部。在读取或写入符号之后,头部然后可以在带上从左或从 右移动一个单元。图灵机还具有表示图灵机的当前状态的状态寄存器。最后,图灵机具有 如何进行的指令表。典型地,表中的每一个指令可以被认为是元组,该元组包括当前状态和 从带读取的当前符号,并且标识要使用的下一状态、写入到带的符号和使带前进所沿的方 向(左或右)。
[0111] 计算机科学理论示范了单个图灵机可以模拟多个图灵机的操作。也就是说,给定 两个或更多图灵机的定义,有可能定义执行所有这些单独的图灵机的操作的单个图灵机。 因此,有可能设计可以分析与多个图灵机可能单独地进行的相同数据的单个图灵机。
[0112] 计算机科学理论还示范了单个图灵机可以模拟按顺序的两个图灵机的操作。
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1