专利名称:一项用于测量分析仪器的虚拟机数据搜索技术的制作方法
技术领域:
本发明属于嵌入式系统领域,更具体地说是一种涉及基于触发条件用于搜索测量 分析仪器特定样本数据的虚拟机技术。
背景技术:
测量分析仪器是实现信息获取、信息传输、信息存储、信息处理和应用的必备工 具,现有的测量分析仪器包括逻辑分析仪、示波器、编程器等。测量分析仪器主要用于检测 和分析数字电路,一般来说,数字电路包含一路或多路总线信号,用于传输数据、地址、命令 及其它信息,每条总线由多个通道或线路组成。使用测量分析仪器对数字电路的多个通道 或线路进行并行采样时,将产生大量分析用的样本数据。但是,用户关心的只是自己想要 的或重要的数据,也就是说代表一种感兴趣的状态或正在测试的数字电路的特定状态的数 据,因此,搜索用户感兴趣的数据很有必要。用户可以为感兴趣的状态或特定数据根据其特 征建立搜索条件,并使用测量分析仪器的搜索功能查找符合条件的数据。现有的测量分析仪器,都是通过测量分析仪器软件的搜索/查找界面获取搜索条 件,并将这些搜索条件作为参数传入到对应的搜索函数中执行,从而在采样数据中搜索出 符合条件的数据,由于这个搜索函数是固定不变的,参数的数量和类型都有较大限制,因此 只能实现简单条件的搜索,不能进行复杂的搜索。如果要实现更复杂的搜索,则必须编写复 杂的搜索函数嵌入到测量分析仪器软件中。若要升级增加搜索功能就必须更改搜索函数, 会导致软件结构混乱、繁杂,而且扩展性很差。可以发明一种搜索虚拟机来代替搜索函数实现查找功能。如图2所示,使用搜索 虚拟机可以将触发/搜索条件直接转换为对应的虚拟机指令,通过执行虚拟机指令来实现 搜索功能;而不是机械的将搜索条件转换为参数传入到固定的搜索函数中,通过执行搜索 函数来实现搜索功能。从而避免了因函数参数的数量和类型限制而导致的搜索条件单一问 题。如图3和图4所示,所述触发/搜索条件来源于触发条件编辑器(1),可以根据具体需 求来设置触发条件,从采样数据中搜索出用户感兴趣的数据。这种方法非常的灵活,指令粒 度小,可编程能力强,通过指令的组合几乎可以实现任意复杂的查找功能,扩展能力很强。
发明内容
本发明提供一项用于测量分析仪器的虚拟机数据搜索技术,即用虚拟机模拟硬件 触发器的工作方式,使用特定的虚拟机指令实现对样本数据的复杂查找。用户可以通过触 发条件编辑器获取搜索/触发条件,并转换为可被虚拟机识别的指令;虚拟机执行所述指 令即可实现复杂的搜索功能。图1描述了测量分析仪器触发与搜索的整体工作流程,如图1所示的工作流程包 括测量分析仪器的触发和搜索两个部分。所述测量分析仪器的触发流程包括触发条件编 辑器(1)、触发指令编译器(2)、触发器(3)和触发结果输出模块(4);所述测量分析仪器搜 索流程包括触发条件编辑器(1)、虚拟机指令编译器(5)、虚拟机(6)和搜索结果输出模块(7)。如图3所示,为测量分析仪器触发流程图,当需要实现触发功能时,用户可以通过 触发条件编辑器(1)编辑触发条件,然后通过触发指令编译器(2)将触发条件编译为可被 触发器(3)识别的指令,并将所述指令传送给触发器(3),触发器(3)检测到符合触发条件 的数据后,就会产生触发事件,并通过触发结果输出模块(4)输出。如图4所示,为测量分析仪器的搜索流程图,当需要实现对样本数据的搜索功能 时,用户可以通过触发条件编辑器(1)编辑搜索条件,然后通过虚拟机指令编译器(5)将 搜索条件编译为可被虚拟机识别的指令,并将所述指令传送给虚拟机(6),虚拟机(6)接收 所述指令并执行,当搜索到符合条件的数据时通过搜索结果输出模块(7)输出。本发明就 是通过设计虚拟机(6)来模拟测量分析仪器触发器(3)的工作方式实现复杂的数据搜索功 能。如图5所示,为所述虚拟机(6)的内部结构图,包括虚拟机配置模块(61)、存储模 块(62)、指令预处理模块(63)、指令执行模块(64)和执行结果输出模块(65)。以下为虚拟 机(6)各模块的详细介绍(61)虚拟机配置模块。包含虚拟机初始化信息,在虚拟机启动时,该模块会对虚拟 机的工作模式,硬件(I/O端口、计时器/计数器)的状态、地址和数量进行配置。所述虚拟 机的工作模式包括普通模式和调试模式两种;所述硬件状态包括计数器/计时器初值,输 入输出数据的起点和范围等;硬件的状态和地址由寄存器组保存。(62)存储模块。用于存储虚拟机运行中的所有数据,所述数据包括虚拟机配置信 息、状态信息、变量信息、I/O缓存信息、硬件配置信息等。其寄存器地址分配由虚拟机管理, 可以在程序中使用地址直接访问。在使用变量时,不区分变量类型。计数器/计时器、总线 寄存器等软硬件用到的所有数据采用相同的数据位数存储,根据指令区分和处理相应的数 据类型。(63)指令预处理模块。该模块从虚拟机指令编译器(5)获取搜索指令,逐条读入 所述指令并按指令格式进行检查,将指令按操作码和操作数进行拆分,并在内存中分配一 个区域作为指令寄存器组,将所述操作码和操作数分别存入其中,然后根据操作码设置状 态寄存器组,所述状态寄存器组是一组变量,用于存储I/O端口和计时器/计数器的状态信 息。以下为所述搜索指令的具体设计方式虚拟机指令设计包含基本指令(如表1所示)、宏指令(如表2所示)和高级指令 (如表3所示)两种。基本指令为简化的汇编指令,可实现最基本的赋值、判断、输入输出、 跳转功能,该指令集可以实现任意类型的程序结构,保证了通用性;高级指令是为了满足搜 索的特殊需求而设计的指令,可实现特定的功能,是对测量分析仪器触发器(3)现有指令 的简单组合,保证了易用性和高效性。(64)指令执行模块。如图6所示,为指令执行模块(64)的结构图,指令执行模块 (64)包含取指令(641)、执行指令(642)、和执行结果(643)三个部分。该模块接收指令预 处理模块(63)产生的指令并执行,为执行结果输出模块(65)提供执行结果。具体执行方 式为指令执行模块(64)从指令寄存器中取出当前PC指针所指向的指令,根据指令的 操作码使用立即数寻址或者寄存器寻址的方式从存储模块(62)中读取数据。所述数据是指虚拟机运行时所需的数据,包括虚拟机配置信息、状态信息、变量信息、I/O缓存信息、硬 件配置信息以及待搜索的数据等。其中待搜索的数据主要是被搜索的总线数据。指令执行 模块(64)执行所取指令,执行完后更新时钟和计时器/计数器,并将中间变量存入存储模 块(62),然后更新PC指针的值(将PC指针加1或者设置PC指针为指定值)。循环执行指 令,直到找到符合条件的数据,并将指令执行结果(643)传送给执行结果输出模块(65)输 出;或者未找到符合条件的数据,则直接退出虚拟机。执行结果(643)包括判断虚拟机是否搜索到符合条件的数据的返回值和搜索到 的数据位置的索引值,可以通过测量分析仪器软件接收指令执行结果(643),根据所述索引 值将搜索结果在样本数据中标识出来以供用户查看。(65)执行结果输出模块。该模块接收指令执行模块(64)产生的搜索结果,并通过
I/O端口输出。本发明提供的触发式数据搜索虚拟机,设计了一套专门用于虚拟机的汇编指令 集,使用时可将触发条件直接转换为虚拟机的搜索指令,也可根据需求编写任意复杂程度 的搜索描述代码进行搜索。同时相应的对硬件进行了抽象,使用与触发语言兼容的执行方 式,将测量分析仪器的触发和对样本数据的搜索统一起来。
图1测量分析仪器触发与搜索整体结构2测量分析仪器虚拟机搜索方式和现有搜索方式的对比图3测量分析仪器触发流程4测量分析仪器搜索流程5虚拟机内部结构6虚拟机指令执行模块结构图
具体实施例方式如图5所示,当用户需要对样本数据进行搜索时,测量分析仪器软件首先调用虚 拟机配置模块(61)对虚拟机进行初始化配置,配置好虚拟机后,指令预处理模块(63)接收 虚拟机指令编译器(5)编译的虚拟机指令,并对所述指令进行预处理,然后将预处理后的 指令传送给指令执行模块(64);指令执行模块(64)从存储模块(62)中获取指令执行所需 数据,并执行所述指令对样本数据进行搜索,执行完成后将搜索结果传送给执行结果输出 模块(65)输出。下面以搜索逻辑分析仪样本数据为例来说明虚拟机技术的具体实施方式
,逻辑分 析仪样本数据如表4所示。实施方式一、使用虚拟机从样本数据中搜索总线(总线名称为Busl,地址为0x10) 上的数据0x01。因搜索数据为一个特定的值,可使用基本指令来实现搜索。首先使用触发条件编辑器(1)编辑搜索条件总线为Busl,总线地址为0x10,要搜 索的数据为0x01。然后通过虚拟机指令编译器(5)将搜索条件编译为可被虚拟机识别的指 令,如程序清单1所示程序清单1
①0x0100 (DATA)0x01②STEPl OxOA (NEXT)③0x06 (JNE) 0x10 (Busl) 0x01 OxOI(STEPI) /*Busl 为总线名称 */④OxOC (OUT)启动虚拟机,连接具体的外部数据源,通过虚拟机配置模块(61)配置虚拟机的 工作模式为普通模式,根据如表4所示的样本数索引配置I/O端口的起始位置为1,结 束位置为99,当前位置为1,配置I/O端口在代码中的索引地址为0x10,索引地址范围为 OxIO-OxIFo配置好虚拟机后,指令预处理模块(63)逐条读入所述虚拟机指令(如程序清单1 所示),检测每条指令的指令格式,分别取出操作码和操作数,存入指令寄存器组中,根据宏 指令①的操作码从内存中分配寄存器(0x0100)并设寄存器值为0x01 (即保存待搜索的数 据)。指令执行模块(64)从指令寄存器中取出当前PC指针(当前PC指针的值为0x01) 所指向的指令②,从存储模块(62)中读取虚拟机配置信息、I/O缓存信息、硬件配置信息以 及当前样本数据索引(索引值为1)。指令执行模块(64)执行指令②,指令②所进行的操作 包括更新时钟,从总线Busl读入当前索引关联的数据,将样本数据索引值加1,将PC指针 的值加1。指令执行模块(64)从指令寄存器中取出当前PC指针(当前PC指针的值为0x02) 所指向的指令③,从存储模块(62)中读取虚拟机配置信息、I/O缓存信息、寄存器(0x0100) 数据。指令执行模块(64)执行指令③,指令③所进行的操作包括将Busl上索引值为1 的数据和寄存器0x0100中的数据进行比较,发现数据不相匹配,于是修改PC指针的值为 0x01,跳转到指令②执行。如此循环,直到找到符合条件的数据(索引值为37),指令③将样 本数据索引值设为37,将PC指针的值加1。指令执行模块(64)从指令寄存器中取出当前PC指针(当前PC指针的值为0x03) 所指向的指令④,从存储模块(62)中读取虚拟机配置信息和I/O缓存信息。指令执行模块 (64)执行指令④,指令④所进行的操作包括设置虚拟机返回值为1(搜索成功),然后将虚 拟机返回值和样本数据索引值传送给执行结果输出模块(65)输出,退出虚拟机。搜索结果输出模块(7)接收执行结果输出模块(65)输出的数据,根据虚拟机返回 值判断,发现搜索成功,并将搜索到的数据索引值传送给测量分析仪器软件,测量分析仪器 软件根据所述数据索引值将搜索结果在样本数据中标识出来以供用户查看。如果样本数据中不存在与搜索数据相匹配的数据,那么设置虚拟机返回值为 0 (搜索失败),设置样本数据索引为0 (无意义的索引值),然后将虚拟机返回值和样本数据 索引值传送给执行结果输出模块(65)输出,退出虚拟机。实施方式二、使用虚拟机从样本数据中查找总线(总线名称为Busl,地址为0x10) 上的数据队列0xl8,0x9E,0x39,OxlOE,0x20。因搜索数据为队列,属于复杂搜索,可使用高 级指令来实现搜索。首先使用触发条件编辑器(1)编辑搜索条件总线为Busl,总线地址为0x10,要搜 索的数据为0x18,0x9E,0x39,OxlOE,0x20。然后通过虚拟机指令编译器(5)将搜索条件编 译为可被虚拟机识别的指令,如程序清单2所示
6
程序清单2①OxOD(PUSH)0x18②OxOD (PUSH) 0x9E③OxOD(PUSH)0x39④OxOD (PUSH) OxlOE⑤OxOD (PUSH) 0x20⑥0x18(ONDQ)0x10(Busl) STEP⑦OxOC (OCUT)⑧STEP:0x15 (RET)启动虚拟机,连接具体的外部数据源,通过虚拟机配置模块(61)配置虚拟机的 工作模式为普通模式,根据如表4所示的样本数据索引配置I/O端口的起始位置为1,结 束位置为99,当前位置为1,配置I/O端口在代码中的索引地址为0x10,索引地址范围为 OxIO-OxIFo配置好虚拟机后,指令预处理模块(63)逐条读入所述虚拟机指令(如程序清单2 所示),检测每条指令的指令格式,分别取出操作码和操作数,存入指令寄存器组中,并根据 指令的操作码设置状态寄存器组。指令执行模块(64)从指令寄存器中取出当前PC指针(当前PC指针的值为0x01) 所指向的指令①,从存储模块(62)中读取虚拟机配置信息。指令执行模块(64)执行指令 ①,指令①所进行的操作包括将数值0x18存入数据队列(数据队列是一个用于存储整块 数据的模块,包含于存储模块(62)中),将PC指针的值加1。同指令①,指令执行模块(64)从指令寄存器中依次取出指令②_⑤并执行,每执 行一条指令PC指针的值加1。指令执行模块(64)从指令寄存器中取出当前PC指针(当前PC指针的值为0x06) 所指向的指令⑥,从存储模块(62)中读取虚拟机配置信息。指令执行模块(64)执行指令 ⑥,指令⑥所进行的操作包括从样本数据中查找指令①_⑤所存储的数据队列,发现没有 符合条件的数据队列,于是设置样本数据索引值为0,PC指针的值为0x15,跳转到STEP执 行。指令执行模块(64)从指令寄存器中取出当前PC指针(当前PC指针的值为0x08) 所指向的指令⑧并执行,指令⑧所进行的操作包括设置虚拟机返回值为0 (查找失败),然 后将虚拟机返回值和样本数据索引值传送给执行结果输出模块(65)输出,退出虚拟机。搜索结果输出模块(7)接收执行结果输出模块(65)输出的数据,根据虚拟机返回 值判断,发现搜索失败,并将搜索失败信息传送给测量分析仪器软件。如果从样本数据中搜索到符合条件的数据队列,那么将数据索引值设置为数据队 列中第一个数据在样本数据中的索引值,将PC指针的值加1。指令执行模块(64)从指令寄 存器中取出当前PC指针(当前PC指针的值为0x07)所指向的指令⑦,从存储模块(62)中 读取虚拟机配置信息、I/O缓存信息。指令执行模块(64)执行指令⑦,指令⑦所进行的操 作包括设置虚拟机返回值为1,然后将虚拟机返回值和样本数据索引值传送给执行结果 输出模块(65)输出,退出虚拟机。通过以上实施方式的描述,本领域的技术人员可以清楚的了解到本发明可借助软
7件及相关的硬件来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做 出了贡献的部分可以用软件产品的形式体现出来,该产品包括若干指令,通过这些指令使 得一台计算机设备(这里所述的计算机设备是一个广义的概念,包括但不限于测量分析仪 器)执行本发明实施例所述方法。最后应说明的是对于本技术领域的普通技术人员来说,在不脱离本发明原理的 前提下,还可以对本发明做改进和优化,这些改进和优化也应属于本发明的保护范围。表1基本指令 表2宏指令 表3高级指令
表4样本数据
权利要求
一项用于测量分析仪器的虚拟机数据搜索技术,包含触发条件编辑器(1),虚拟机指令编译器(5),虚拟机(6),搜索结果输出模块(7),触发指令编译器(2),逻辑分析仪触发器(3)和触发结果输出模块(4);其特征在于触发条件编辑器(1)连接虚拟机指令编译器(5),虚拟机指令编译器(5)连接虚拟机(6),虚拟机(6)连接搜索结果输出模块(7),搜索结果输出模块(7)输出搜索结果;触发条件编辑器(1)连接触发指令编译器(2),触发指令编译器(2)连接逻辑分析仪触发器(3),逻辑分析仪触发器(3)连接触发结果输出模块(4),触发结果输出模块(4)输出触发结果。
2.根据权利要求1所述的一项用于测量分析仪器的虚拟机数据搜索技术,其特征在 于所述测量分析仪器包括逻辑分析仪、示波器和计算机虚拟设备。
3.根据权利要求1所述的一项用于测量分析仪器的虚拟机数据搜索技术,其特征在 于所述虚拟机(6)由虚拟机配置模块(61)、存储模块(62)、指令预处理模块(63)、指令执 行模块(64)和执行结果输出模块(65)组成。
4.根据权利要求3所述的一项用于测量分析仪器的虚拟机数据搜索技术,其特征在 于虚拟机配置模块(61)连接到指令预处理模块(63),指令预处理模块(63)接收虚拟机 指令编译器(5)输出的指令并输出预处理结果到指令执行模块(64),指令执行模块(64)分 别与存储模块(62)和执行结果输出模块(65)相连接,执行结果输出模块(65)输出执行结果ο
5.根据权利要求3所述的一项用于测量分析仪器的虚拟机数据搜索技术,其特征在 于所述虚拟机配置模块(61)在虚拟机启动时包括对虚拟机工作模式,I/O端口和计时器 /计数器的初始化。
6.根据权利要求3所述的一项用于测量分析仪器的虚拟机数据搜索技术,其特征在 于所述指令执行模块(64)由取指令(641)、执行指令(642)和执行结果(643)组成。
7.根据权利要求3所述的一项用于测量分析仪器的虚拟机数据搜索技术,其特征在 于所述存储模块(62)存储虚拟机运行中的所有信息,所述信息包括虚拟机配置信息、状 态信息、变量信息、I/O缓存信息和硬件配置信息。
8.根据权利要求1所述的一项用于测量分析仪器的虚拟机数据搜索技术,其特征在 于所述虚拟机(6)运行的指令包括基本指令和高级指令。
9.根据权利要求8所述的一项用于测量分析仪器的虚拟机数据搜索技术,其特征在 于所述虚拟机(6)指令存储在存储模块(62)中,所述指令采用统一的数据宽度存储。
10.根据权利要求8所述的一项用于测量分析仪器的虚拟机数据搜索技术,其特征在 于所述基本指令由简化的汇编指令组成,可实现最基本的赋值、判断、输入输出、跳转功 能;所述高级指令是逻辑分析仪触发器(3)指令的简单组合,可实现特定的功能。
全文摘要
本发明属于嵌入式系统领域,更具体的说是一种涉及基于触发条件用于搜索测量分析仪器特定样本数据的虚拟机技术。目的在于更加方便灵活的对测量分析仪器样本数据进行搜索。所述虚拟机的搜索指令来源于对测量分析仪器触发条件的编译,虚拟机执行编译的搜索指令对样本数据进行搜索,最终输出搜索结果。本发明中的虚拟机模拟测量分析仪器中触发器的工作方式,设计了一套专门用于虚拟机的汇编指令集,同时实现了由高级语言编写的各种基本通用函数接口,可使用这些接口根据搜索需求编写任意复杂程度的搜索指令进行搜索,也相应的对硬件进行了抽象,使用与触发语言兼容的执行方式,将触发和搜索统一起来。
文档编号G01R31/317GK101916204SQ20101015276
公开日2010年12月15日 申请日期2010年4月16日 优先权日2010年4月16日
发明者周立功 申请人:广州致远电子有限公司