用于输出包括数据字典的数据的方法和指令的制作方法

文档序号:6128854阅读:144来源:国知局
专利名称:用于输出包括数据字典的数据的方法和指令的制作方法
技术领域
本发明涉及用于输出包括数据字典的数据的方法和指令。
背景技术
许多计算环境将数据生成资源从数据处理资源中分离出来,以最大化每个资源的性能。一个处理或者处理器专注于数据生成,而另一个处理或者处理器专注于数据处理。测试器是专用的数据生成机器,其被用于对被测试设备(DUT)执行测试并且生成测试数据。然后,其他机器专注于执行用于处理所生成的数据的程序,包括对所生成的数据的呈现,分析或存储。
为了最大化测试器性能,所生成的测试数据可以被优化以便最小化对处理资源和带宽资源的使用。在一个示例中,可以使用枚举来描述后面的数据的类型,例如,“1,4.0”和“2,0.03”,其中“1”表示记录的一种类型,并且“2”表示另一种类型,例如伏特和安培。后面的数据是与每个相应的记录类型相关联的值(例如,4.0伏特,0.03安培)。数据生成器和数据使用者使用相同的格式以保证对数据的正确处理是非常重要的。为了保证所有设备使用同一格式而更新这些格式成为一项繁重且容易出错的任务。如果在同一计算环境内使用了不同的数据格式,那么该任务将会更加繁重。

发明内容
在一个实施例中,一种方法包括以下步骤1)确定若干数据类型和相关联的数据结构定义,数据类型被用作运行程序的机器的潜在输出;2)利用列表创建数据字典,所述列表包括数据类型和相关联的数据结构定义;以及3)为运行程序的机器输出数据字典。
在第二实施例中,一个或多个机器可读介质在其上存储指令序列,当所述指令序列被机器执行时,其使机器执行输出被访问的数据字典的动作,所述数据字典包括被用作程序的潜在输出的数据类型和相关联的数据结构定义。
在第三实施例中,一个或多个机器可读介质在其上存储指令序列,当所述指令序列被机器执行时,其使得机器执行以下动作1)确定若干数据类型和相关联的数据结构定义,数据类型被用作运行程序的机器的潜在输出;2)利用列表创建数据字典,所述列表包括数据类型和相关联的数据结构定义;以及3)为运行程序的机器输出数据字典。
其他实施例也被公开。


在以下附图中示出了本发明的示意性实施例,其中图1示出了用于输出数据字典的示例性方法;图2示出了用于执行图1的方法以输出数据字典的处理系统的框图;图3示出了处理器(例如图2中的处理器)所输出的示例性第一数据字典;图4示出了利用数据字典(例如图3中的数据字典)的处理器(例如图2中的处理器)的输出的示例性第一片断;图5示出了处理器(例如图2中的处理器)所输出的示例性第二数据字典;图6示出了利用数据字典(例如图5中的数据字典)的处理器(例如图2中的处理器)的输出的示例性第二片断;以及图7示出了具有执行图1的方法的机器的示例性系统。
具体实施例方式
作为前序问题,注意,下面的描述中,在不同附图中出现的相似标号指代相似的元件/特征。因此,通常将不会针对每个附图详细地描述在不同附图中出现的相似元件/特征。
机器(例如测试器)根据程序的执行产生输出。测试器的输出可以包括各种类型的测试数据(例如,测试标识符,时间戳,测试结果,等等)。测试结果是响应于测试对一个或多个被测试设备(DUT)的观测结果。测试器输出的格式可能根据不同的测试器而变化,或者在一个测试器内随时间而变化。这种变化可能归因于新技术,测试方法,输出标准或其他事件。
测试器的输出通常被最优化以减少对带宽和数据报告资源的使用。因此,常常使用符号。一个这种符号是数据类型。数据类型是到描述相关联的数据值的格式的结构定义的链接。按其最简单的形式,数据类型是针对标准数据类型(例如,长整数,短整数,浮点数,双精度数,字符串等)的指示符,并且按其最简单的形式,数据类型还与单一数据值相关联。例如“3,200”,其中“3”是与标准数据类型“短整数”(例如,两个字节的无符号整数)相关联的数据类型,并且接下来的数字(“200”)是相关联的数据值。按更复杂的形式,数据类型与包含数值、标准数据类型和/或数据类型的组合的结构相关联。例如,数据类型“99”可以与“日期”结构相关联。数据类型“99”指示符的后面例如是短整数(日)、字符串(月)、整数(年)和“时间结构”。该“时间结构”可以是包括其自身的数据类型以及针对小时、分钟、秒等等的值的嵌套结构。在实践中,可以有一个或者多个值是空白(例如,零或者空)。
数据使用者(例如那些对测试器的输出进行格式化、呈现、存储、组织和分析的数据使用者)必须明白测试器所产生的测试数据的格式。如果数据使用者仅仅接收到一种格式的测试数据,那么在测试器和数据使用者之间统一数据格式将是一次性的事件。然而,更复杂的情形经常会出现,例如数据使用者从一个测试器接收输出(例如,其中数据类型“3”指代“整数”形式的电压值),然后从第二测试器接收输出(例如,其中数据类型“3”指代长整数形式的电流值),并且再接着从第三测试器接收输出(例如,其中数据类型“3”指代字符串值的日期值)。保持测试器的输出格式与数据使用者的输入格式相统一是麻烦且容易出错的。单个测试器可能以不同格式输出测试数据,这更加大了处理多个格式的负担和出错的可能性。
图1示出了用于输出数据字典的示例性方法100。方法100包括步骤102,104和106,分别用于1)确定若干数据类型和相关联的数据结构定义,所述数据类型被用作运行程序的机器的潜在输出;2)利用列表创建数据字典,所述列表包括数据类型和相关联的数据结构定义;以及3)为运行程序的机器输出数据字典。
在另一实施例中,方法100的机器是测试器,该测试器可操作用于对若干被测试设备执行测试并且所述程序是使机器执行测试的指令。
在另一实施例中,输出数据字典的步骤包括作为运行程序的机器的第一输出来输出数据字典。在另一实施例中,输出数据字典的步骤包括作为运行程序的机器的数据输出的头部来输出数据字典。在又一实施例中,输出数据字典的步骤包括将数据字典写入数据存储装置中。在另一实施例中,将数据字典写入数据存储装置中的步骤包括从数据存储装置中取回数据字典并且将附加列表加入到数据字典中。
在另一实施例中,确定若干数据类型和相关联的数据结构定义的步骤包括,在程序源代码的编译期间执行代码来解析源代码,从而1)确定所述若干数据类型和相关联的数据结构定义中的一些,并且2)提供对可用于创建数据字典的若干数据类型和相关联的数据结构定义的访问。在又一实施例中,数据字典被存储在包括程序的已编译代码的文件中。
图2示出了用于执行图1的方法以输出数据字典的处理系统200的框图。处理器206利用输入202和输出204与其他处理和设备通信。处理器206执行具有数据字典210的程序208。在一个实施例中,数据字典210位于程序208的一部分中,并且从程序208的一部分中被取出。即,数据字典210被存储作为静态指令代码程序208的一部分。程序208的实际位置可以包括主存储器,处理器存储器,高速缓存,页式存储器,或者由处理器206和/或用于执行程序208的处理器206的操作系统所确定的其它指令位置。在另一实施例中,从程序208中获取数据字典210,例如通过可操作用于分析程序208的源代码的另一程序。在一个示例中,程序208包括多个已编译的文件和/或运行时链接的文件(例如,目标文件,动态链接库,可执行文件等)。然后,一个或多个文件为总的数据字典210提供列表。在又一实施例中,数据字典210起始并且取自于程序208外部的位置,使得数据字典210被存储在程序208的动态存储器中(例如作为数据值)。
图3示出了处理器(例如图2中的处理器)所输出的示例性第一数据字典300。数据字典300是程序208中的数据字典210的一种示例形式。为了清楚起见,示出的数据字典300具有标题。这些标题作为设计的选择来实现。示出的数据字典300还具有数据类型302、数据结构定义304和可选的描述306。数据类型302可以是可操作用于作为相关联的数据结构定义304的关键词(key)的任何数据资料。类似地,数据结构定义304可以是数据字典300的数据使用者(参见图7)可读的任何形式,以将数据流中的数据类型(参见图4和图6)与数据使用者所使用的数据类型相关联。数据字典300包括与相应的一些数据结构定义304A-304n和可选的描述306A-306n相关联的一些数据类型302A-302n。
可选的描述306提供了标识和/或记录数据字典300中的值的第二种方式。作为一个例子,值“3”可以是与描述306C(“伏特”)相关联的整数。描述306可以是英语文本(如图所示),或者在其它实施例中是其它人或者机器可读的形式。
图4示出了利用数据字典(例如图3中的数据字典300)的处理器(例如图2中的处理器)的输出的示例性第一片断400。程序208输出数据,第一片断400代表所述数据的一部分。第一片断400包括记录,所述记录包括1)数据类型402,408,414,418,422和2)一个或多个相关联的数据值404,406;410,412;416;420;424。字符串424具有可变的长度并且以空值426作为结束。在一个实施例中,空值426与日期元素424区分开。在另一个实施例中,空值426是日期元素424中的数据的一部分。第一片断400的实际结构是可变的。例如,一个数据类型可以与针对这个数据类型的可变数目或固定数目的数据值相关联。其它数据类型可以与包括不同数据类型及与其相关联的数据值的结构相关联。
第一片断400包括元素402-426,元素402具有值“1”。值“1”与数据类型302A相关联,数据类型302A再与数据结构定义304A(“2个2字节整数”)和可选的描述306A(“范围”)相关联。现在被确定为“范围”数据类型的元素402之后,是为范围402提供值的两个范围元素404、406。范围元素408后面也类似地有范围元素410、412。元素414具有值“3”。值“3”与数据类型302C相关,数据类型302C又与数据结构定义304C(“2字节整数”)和可选的描述306C(“伏特”)相关联。单一电压值416跟在元素414的后面(“450mv”)。类似地,电压元素418也具有值“3”,表示与数据类型302C相关联,数据类型302C再与数据结构定义304C(“2字节整数”)和可选的数据类型306C(“伏特”)相关联,并且后面跟着电压元素420(“-410mv”)。元素422具有值“4”,表示数据结构定义304D(“字符串”)。元素424包括字符串值,并且如果是可变长度的,则包括字符串终止符,例如空值426。
图3和4表征了处理器(例如运行程序208的处理器206)的输出。参见图2。数据字典300在第一片断400之前被输出。这样,读取处理器206的输出的数据使用者就能够通过接收作为输出的一部分的数据字典300来正确地翻译在第一片断400中所使用的数据类型。读取输出的数据使用者可以在处理采用新的格式的测试数据之前,通过接收新的数据字典很容易地改变数据格式。
图5示出了从处理器(例如图2中的处理器206)中输出的示例性第二数据字典500。在一个实施例中,第二数据字典500是由在处理器206上被执行的程序208的修改版本产生的。在另一实施例中,第二数据字典输出500是由可以在处理器206或者另一个处理器上执行的不同于程序208的程序产生的。为了清楚起见,示出的数据字典500具有标题。标题可以作为设计选择而被包括其中。数据字典500也被表示为英语字母-数字文本,并且如前所述,可以用其他形式表示。参见上述图3。
与图3中的数据字典300类似,数据类型502A(“1”)与数据结构定义504A(“2个2字节整数”)和可选的描述506A(“范围”)相关联,并且数据类型502B(“2”)与数据结构定义504B(“2字节整数”)和可选的描述506B(“安培”)相关联。然而,数据类型502C(“3”)现在是与数据结构定义504C(“4-字节整数”)和可选的描述506C(“毫伏”)相关联,并且数据类型502D(“4”)现在与数据结构定义504D(“Struct(int,int,3)”)相关联。数据结构定义504可以包括多个元素和被嵌套的其它数据结构定义504。例如,数据结构定义504D是具有三个元素的结构第一整数,第二整数和由数据类型502C定义的数据类型“3”,数据类型502C再与数据结构定义504D(“4字节整数”)相关联。
图6示出了利用数据字典(例如图5中的数据字典500)的处理器(例如图2中的处理器206)的输出的示例性第二片断600。第二片断600分别包括数据类型值“1,1,3,4”(602,608,614,618,622)。得益于首先接收数据字典500,处理输出204的数据使用者能够正确地解析第二片断600,并且例如正确地确定元素614(“3”)是毫安而不是伏特(像图4中那样),并且确定元素622(“4”)指示了两个“整数”和一个数据类型502C(“3”)。
图7示出了具有执行图1的方法的机器702的示例性系统。机器702(例如测试器)产生输出704、706。该输出被分成第一输出706和第二输出704。第一输出706包括数据类型和相关联的数据结构定义。第二输出704包括根据第一输出706的数据字典中所描述的数据类型被格式化的测试数据。数据使用者708接收并格式化,存储,呈现,组织,和/或分析机器702和可选的其它机器的输出。数据使用者708利用数据字典706将在第二输出704中发现的数据类型翻译成结构定义,以便于读取和处理与数据类型相关联的数据值。
权利要求
1.一种方法,包括确定若干数据类型和相关联的数据结构定义,所述数据类型被用作运行程序的机器的潜在输出;利用列表创建数据字典,所述列表包括所述数据类型和所述相关联的数据结构定义;以及为所述运行程序的机器输出所述数据字典。
2.如权利要求1所述的方法,其中所述机器是可操作用于对若干被测试设备执行测试的测试器;以及所述程序是使所述机器执行所述测试的指令。
3.如权利要求1所述的方法,其中输出所述数据字典包括作为所述运行程序的机器的第一输出来输出所述数据字典。
4.如权利要求1所述的方法,其中输出所述数据字典包括作为所述运行程序的机器的数据输出的头部来输出所述数据字典。
5.如权利要求1所述的方法,其中输出所述数据字典包括将所述数据字典写入到数据存储装置中。
6.如权利要求5所述的方法,还包括从所述数据存储装置中取回所述数据字典并且将附加列表添加到被写入所述数据存储装置的所述数据字典中。
7.如权利要求1所述的方法,其中确定所述若干数据类型和相关联的数据结构定义包括在所述程序的源代码编译期间执行代码以解析所述源代码,从而1)确定所述若干数据类型和相关联的数据结构定义中的一些,并且2)提供对可用于创建所述数据字典的所述若干数据类型和相关联的数据结构定义的访问。
8.如权利要求7所述的方法,还包括,在包含所述程序的已编译代码的文件内存储所述数据字典。
9.一个或多个其上存储有指令序列的机器可读介质,其中,所述指令序列在被机器执行时使得所述机器执行输出被访问的数据字典的动作,所述数据字典包括被用作所述程序的潜在输出的数据类型和相关联的数据结构定义。
10.如权利要求9所述的机器可读介质,还包括如下指令,所述指令在被所述机器执行时使得所述机器执行访问存储在所述程序中的数据字典的动作。
11.如权利要求9所述的机器可读介质,还包括如下指令,所述指令在被所述机器执行时使得所述机器执行访问存储在数据存储装置中的所述数据字典的动作。
12.如权利要求9所述的机器可读介质,还包括如下指令,所述指令在被所述机器执行时使得所述机器执行以下动作利用可操作用于对若干被测试设备执行测试的测试器来控制所述程序;以及运行所述程序以执行所述测试。
13.如权利要求9所述的机器可读介质,还包括如下指令,所述指令在被所述机器执行时使得所述机器执行作为所述程序的第一输出来输出所述数据字典的动作。
14.如权利要求9所述的机器可读介质,还包括如下指令,所述指令在被所述机器执行时使得所述机器执行作为所述程序的数据输出的头部来输出所述数据字典的动作。
15.如权利要求9所述的机器可读介质,还包括如下指令,所述指令在被所述机器执行时使得所述机器执行以下动作分析所述程序以确定所述程序的若干数据类型及相关联的数据结构定义;建立所述数据字典;和存储所述数据字典。
16.如权利要求15所述的机器可读介质,其中用于分析所述程序的指令还包括用于分析所述程序的源代码的指令。
17.如权利要求15所述的机器可读介质,其中用于存储所述数据字典的指令还包括将所述数据字典存储在所述程序的已编译机器代码的一部分中的指令。
18.一个或多个其上存储有指令序列的机器可读介质,其中,所述指令序列在被机器执行时使得所述机器执行以下动作确定若干数据类型和相关联的数据结构定义,所述数据类型被用作运行程序的机器的潜在输出;利用列表创建数据字典,所述列表包括所述数据类型和所述相关联的数据结构定义;以及为所述运行程序的机器输出所述数据字典。
19.如权利要求18所述的机器可读介质,还包括如下指令,所述指令在被所述机器执行时使得所述机器执行作为所述运行程序的机器的第一输出来输出所述数据字典的动作。
20.如权利要求18所述的机器可读介质,还包括如下指令,所述指令在被所述机器执行时使得所述机器执行作为所述运行程序的机器的数据输出的头部来输出所述数据字典的动作。
21.如权利要求18所述的机器可读介质,还包括如下指令,所述指令在被所述机器执行时使得所述机器执行将所述数据字典写入数据存储装置的动作。
全文摘要
本发明提供了用于输出包括数据字典的数据的方法和指令。在一个实施例中,一种方法包括以下步骤1)确定若干数据类型和相关联的数据结构定义,所述数据类型被用作运行程序的机器的潜在输出;2)利用列表创建数据字典,所述列表包括数据类型和相关联的数据结构定义;以及3)为运行程序的机器输出数据字典。
文档编号G01R31/00GK101067825SQ20071010973
公开日2007年11月7日 申请日期2007年4月5日 优先权日2006年4月6日
发明者罗伯特·S·库尔曼 申请人:韦瑞吉(新加坡)私人有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1