从声明协议描述导出硬件解码加速的制作方法

文档序号:9790701阅读:480来源:国知局
从声明协议描述导出硬件解码加速的制作方法
【专利说明】从声明协议描述导出硬件解码加速
[0001]相关申请数据
本申请要求出于全部目的并入本文的2014年1月24日提交的美国临时专利申请序列号62/068,384的利益。
【背景技术】
[0002]本发明涉及测试和测量仪器,并且更具体地涉及在测试和测量仪器中重创建比特流的分析的方式。
[0003]信号的实时分析占有一席之地。但是有时,其对事后并且较为缓慢地重创建测试测量仪器对数据的操作是有用的,使得可以检查细节。当前,不存在当分析比特流中的数据时进行该分析重创建的方式。
[0004]本发明的实施例解决就现有技术而言的这个和其它问题。
【附图说明】
[0005]图1A示出用于匹配特定分组的协议的示例。
[0006]图1B示出可以匹配图1A的分组的状态机。
[0007]图1C示出在涉及图1A的分组的数据的条件下可以触发的状态机。
[0008]图2A示出用于匹配若干分组的协议的第二示例。
[0009]图2B示出匹配图2A的分组的未经优化的状态机。
[0010]图2C示出匹配图2A的分组的经优化的状态机。
[0011]图2D示出在涉及图2A的分组的数据的条件下可以触发的状态机。
[0012]图3A-3B示出经修改以反映复合触发条件的图1B的状态机。
[0013]图4示出根据本发明的实施例的可以创建和使用图1B-1C和2B-2D的状态机以在满足各种触发条件时触发测试和测量仪器并且将反映图1B-1C和2B-2D的状态机的操作的面包肩(breadcrumb)保存到存储器中的测试和测量仪器。
[0014]图5示出关于图4的状态机修改器的更多细节。
[0015]图6示出关于图4的面包肩的更多细节。
[0016]图7A-7B示出根据本发明的实施例的用于使用图4的测试和测量仪器从协议和用户配置创建触发状态机的过程的流程图。
[0017]图8示出根据本发明的实施例的用于使用图4的测试和测量仪器从协议和复合触发条件创建触发状态机的过程的流程图。
[0018]图9示出根据本发明的实施例的用于使用图4的测试和测量仪器优化状态机的过程的流程图。
[0019]图10示出根据本发明的实施例的用于使用图4的测试和测量仪器来使用创建可以保存面包肩的状态机的过程的流程图。
【具体实施方式】
[0020]在解释本发明如何工作之前,理解正则表达式与状态机之间的关系是有用的。给定正则表达式,可以构造表示该正则表达式的状态机。状态机然后可以用于确定特定输入是否匹配正则表达式。如果状态机进行到可接受的结束状态,则输入匹配正则表达式;否贝IJ,输入不匹配正则表达式。
[0021]图1A示出表述为正则表达式的用于名为“dataPacket(数据分组)”的数据分组的协议的示例。协议105描述数据分组。当比特流与该正则表达式比较时,系统可以确定是否在比特流内发现分组。
[0022]图1B示出对应于图1A的正则表达式的状态机。状态机110包括状态115,120,125,130,135,140和145,在这些状态之间进行转换。每一个状态(其还可以称为节点或顶点)描述需要匹配什么数据以进入状态(接受准则)。每一个箭头是倘若满足针对状态的目标接受准则,则可以遍历的路径。除了开始状态115和成功状态145之外,这些状态顺序对应于分组所预期的数据。因此,状态120匹配比特流内的状态S,状态125匹配对照标记为“begin(开始)”的字段的数据的三个比特,状态130匹配对照标记为“addK地址)”字段的数据的四个比特等等。假定所有数据都可以由状态机110的状态匹配,当到达成功状态145时,系统可以声明分组“dataPacket”已经被成功地匹配。
[0023]状态机110表示实际状态机的简化版本。例如,状态机110不标记各种状态之间的转换,状态机110也不示出当数据不匹配预期时所使用的错误状态或转换。本领域技术人员甚至在没有这些细节的情况下也将理解状态机110如何运行。
[0024]正式地,以数学术语,状态机可以表示为五元组(Σ,S,so, δ, F),其中Σ为字母表(状态机所识别的符号集合),S为状态机中的状态集合,so为初始状态,δ是转换函数,其从S中的每一个状态和Σ中的每一个符号映射到S中的状态(其可以是与输入状态相同的状态),并且F为S中的最终状态的集合。因此,状态机110可以更正式地表示为(Σ,S,so,δ, F),其中:
Σ = {S,0,1,…}(可以潜在地存在比仅仅状态S和二进制值O和I更多的所识别的符号,即使这些是仅有的由状态机所识别的符号)
S = {110, 115, 120, 125, 130, 135, 140, 145}so = 110
δ(δ在此并未更加详细地表述,因为表述完整的转换函数将会非常棘手并且具有极少价值)
F = {145}
事实上,状态机110的这种表述不一定是完整的。转换典型地发生在各个符号上,而不是符号组。因此,从状态120到125的转换可以实际上涉及三个转换(以及因此的一些中间状态):针对标记为“begin”的字段所识别的每一个比特一个。但是作为简化,本领域技术人员将理解状态机110如何运行。
[0025]如果针对状态机110中的给定状态读取到特定值,用户可能想要触发某个过程。例如,如果地址字段存储值10(以二进制,1010;以十六进制,A),用户可能想要触发过程。图1C示出状态机110可以如何进行修改以实现该触发的示例。在图1C中,取代于对照针对地址字段的任何可能值进行匹配,状态机150比较比特流与特定值1010(在状态155中)。如果找到该值,则在状态160处,触发被视为满足,并且触发导致过程开始(无论过程可能是什么)。
[0026]要指出的是,状态115和120在状态机150中与在状态机110中相同:状态115是其中状态机开始的状态,以及状态120匹配来自比特流的状态S。但是状态165不同于状态125,因为状态165不关心正在读取的特定字段。换言之,在状态165中重要的是从比特流读取三个比特。状态155也不同于状态130,因为状态155仅涉及匹配特定比特模式1010,而不是匹配地址字段(如在状态130中那样)。最后,一旦匹配了用户条件,不需要进行另外的匹配,因此状态机150不包括状态135和140的类似物:触发可以在条件满足之后立即发布。
[0027]图1A-1C示出正则表达式、匹配正则表达式的状态机和触发状态机的相当简单的示例。(触发状态机有时简单地称为“状态机”,但是从上下文本领域技术人员可以确定特定状态机是触发状态机还是匹配正则表达式的状态机)。图2A-2D示出更复杂的示例。在图2A中,示出用于三个不同分组的正则表达式。这些正则表达式可以转变成状态机,如图2B中所示。要指出的是,图2B中的状态机205使用单个起始状态来覆盖所有三个可能的协议。
[0028]状态机205可以如所示那样使用。但是使用如所示的状态机205将要求前瞻或回溯,这要求附加的存储器并且可能减慢比特流的处理。例如,假定其中给定特定输入可以到达多个状态,最左(如图2B将被人员读取,而不是处理器可能如何使用状态机205)。例如,要指出的是,状态210,215和220全部匹配Begin状态,并且状态225,230和235全部匹配作为sIaveAddress(从地址)字段的4个比特。使用最左第一方案,在读取Begin状态和作为slaveAddress字段的4个比特之后,系统将处于状态225。但是如果下一比特读数
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1