测试混合指令体系结构的制作方法

文档序号:17582971发布日期:2019-05-03 21:05阅读:166来源:国知局
测试混合指令体系结构的制作方法

本公开涉及测试指令集,尤其涉及测试混合指令体系结构集的系统和方法。

测试生成工具用于生成测试用例,以确保机器实施方式符合其对应的体系结构。对于计算机系统,测试用例可以是一组计算机指令,其驱动计算机产生特定结果,其中,由测试车辆确定所产生结果的正确性。这种测试用例可以以伪随机方式构建。此外,有效的测试生成工具将以自动化和动态的方式构建这些测试用例。通过这样的测试结果,测试人员将确定实施系统或其功能之一是否像最初为其建立的那样工作。仿真了许多测试用例以揭示潜在问题。随着系统的软件和硬件的改变,必须运行不同的测试用例来确定系统的可靠性和稳定性。

随着旧系统和软件程序被逐步淘汰或者随着具有体系结构行为的更新版本被定义,当前系统必须能够支持旧版本,同时支持系统和/或软件的最新版本。混合体系结构被用于提供旧版本和最新版本之间的兼容性。这些混合体系结构需要进行测试,以便在两个版本一起操作时保持两个版本的质量。



技术实现要素:

提供了一种用于测试混合体系结构指令集的计算机实现的方法。该方法包括定义针对第一基础体系结构的第一指令定义表,以及定义针对第二基础体系结构的第二指令定义表。其中,第一基础体系结构与第二基础体系结构不同。该方法还包括定义差量表,以及基于差量表生成混合体系结构表。该方法包括基于混合体系结构表执行测试。

根据另一实施例,提供了一种用于测试混合体系结构指令集的计算机程序产品。计算机可读存储介质具有存储在其上的可由处理器执行的第一程序指令,以使处理器定义针对第一基础体系结构的第一指令定义表,并定义针对第二基础体系结构的第二指令定义表。其中,第一基础体系结构与第二基础体系结构不同。此外,计算机程序产品定义差量表,并基于差量表生成混合体系结构表。计算机程序产品基于混合体系结构表执行测试。

提供了一种用于测试混合体系结构指令集的系统。该系统包括存储介质,该存储介质耦接到处理器,并且处理器被配置为定义针对第一基础体系结构的第一指令定义表,定义针对第二基础体系结构的第二指令定义表,以及定义差量表。其中,第一基础体系结构与第二基础体系结构不同。该系统还包括基于差量表生成混合体系结构表,并基于混合体系结构表执行测试。

在优选实施例中,差量表定义体系结构特定行为;混合体系结构表也基于第一指令定义表或第二指令定义表中的至少一个指令定义表;并且混合体系结构表用于在第一基础体系结构和第二基础体系结构之间兼容的混合体系结构。

附图说明

被视为本发明的主题在说明书的结论处的权利要求中特别指出并清楚地要求保护。从以下结合附图的详细描述中,本发明的前述和其它特征以及优点将是显而易见的,在附图中:

图1是示出用于实践本文教导的处理系统的一个示例的框图;

图2是示出用于测试混合体系结构指令集的实施例的流程图;

图3是示出用于测试混合体系结构指令集的实施例的流程图;

图4是示出用于测试混合体系结构指令集的实施例的框图;

图5是示出用于测试混合体系结构指令集的另一实施例的框图;

图6是示出用于测试混合体系结构指令集的实施例的示例的框图;以及

图7是示出用于测试混合体系结构指令集的实施例的流程图。

具体实施方式

根据本公开的一个或多个实施例,提供了用于测试混合体系结构指令集的计算机实现的方法,计算机程序产品和系统。该方法包括定义针对第一基础体系结构的第一指令定义表,以及定义针对第二基础体系结构的第二指令定义表。其中,第一基础体系结构与第二基础体系结构不同。该方法还包括定义差量表,其中,差量表定义体系结构特定行为并基于差量表以及第一指令定义表或第二指令定义表中的至少一个生成混合体系结构表。该方法包括基于混合体系结构表执行测试,其中,混合体系结构表用于在第一基础体系结构和第二基础体系结构之间兼容的混合体系结构。

挑战在于允许测试工具动态且有效地(即,最小化维护)构建由不同体系结构定义的机器指令集组成的测试案例。换句话说,为混合模型创建测试用例。在一个或多个实施例中,呈现了用于测试混合体系结构的可扩展且灵活的装置。

在各种体系结构中使用的机器语言是由计算机的中央处理单元(cpu)直接执行的一组指令,其中,每个指令执行特定任务。指令包括操作代码,该操作代码后跟一个或多个操作数名词,其中,操作代码是动作,而操作数是要作用的存储器中的数据位置或要切换到的存储器中的程序位置。指令集是计算机的软件与其硬件之间的接口。

基础表包括用于体系结构的机器指令集的基础定义。在一个或多个实施例中,可以为多个体系结构生成多个基础表。不同类型的体系结构包括企业系统体系结构模型扩展esame体系结构、s/390体系结构、其他系统z体系结构等。

在一个或多个实施例中,差量表描述了基础体系结构的指令将如何在混合体系结构中表现。混合体系结构表包括针对混合体系结构的机器指令定义。从基础表和差量表生成的混合表包含要用于测试目的的最终的机器指令集,其中,混合模式支持多个基础体系结构之间的兼容模式。

在一个或多个实施例中,兼容模式体系结构是s/390兼容模式体系结构,其是两个ibmz/系统体系结构、s/390体系结构和z/体系结构的组合。在s/390兼容模式中支持s/390指令集和一些z/体系结构指令。因为s/390模式已经停止,s/390兼容模式允许在z/体系结构平台上执行某些s/390程序。

在一个或多个实施例中,执行s/390兼容体系结构的验证。在示例中,s/390指令被导出到第一基础表中,z/体系结构指令被导出到第二基础表中。创建差量表以定义来自s/390表或z/体系结构表或二者的指令集的唯一行为。最后,根据基础表和差量表生成混合指令集,以创建在s/390兼容模式下支持的最终指令集。

参考图1,示出了用于实现本文教导的处理系统100的实施例。在该实施例中,系统100具有一个或多个中央处理单元(处理器)101a、101b、101c等(共同称为或通常称为处理器101)。在一个实施例中,每个处理器101可以包括精简指令集计算机(risc)微处理器。处理器101通过系统总线113耦接到系统存储器114和各种其他组件。只读存储器(rom)102耦接到系统总线113,并且可以包括控制系统100的某些基本功能的基本输入/输出系统(bios)。

图1进一步描绘了输入/输出(i/o)适配器107和耦接到系统总线113的网络适配器106。i/o适配器107可以是与硬盘103通信的小型计算机系统接口(scsi)适配器和/或磁带存储驱动器105或任何其他类似组件。i/o适配器107、硬盘103和磁带存储设备105在此共同称为大容量存储器104。用于在处理系统100上执行的操作系统120可以被存储在大容量存储器104中。网络适配器106与总线113互连,外部网络116使数据处理系统100能够与其它这样的系统通信。屏幕(例如,显示监视器)115通过显示适配器112连接到系统总线113,显示适配器112可以包括图形适配器以改善图形密集型应用和视频控制器的性能。在一个实施例中,适配器107、106和112可以连接到一个或多个i/o总线,这些i/o总线通过中间总线桥(未示出)连接到系统总线113。用于连接外围设备(诸如硬盘控制器、网络适配器和图形适配器)的合适的i/o总线通常包括通用协议,例如外围组件互连(pci)。附加的输入/输出设备被示为经由用户接口适配器108和显示适配器112连接到系统总线113。键盘109、鼠标110和扬声器111都经由用户接口适配器108与总线113互连,其可以包括例如,将多个设备适配器集成到单个集成电路中的超级i/o芯片。

在示例性实施例中,处理系统100包括图形处理单元130。图形处理单元130是专用电子电路,其被设计为操纵和改变存储器以加速用于输出到显示器的帧缓冲器中的图像的创建。通常,图形处理单元130在操纵计算机图形和图像处理方面非常有效,并且具有高度并行的结构,使得它在并行完成大块数据处理的算法上比通用cpu更有效。

因此,如图1中所配置的那样,系统100包括:以处理器101形式的处理能力、包括系统存储器114和大容量存储器104的存储能力、诸如键盘109和鼠标110的输入装置、以及包括扬声器111和显示器115的输出能力。在一个实施例中,系统存储器114和大容量存储器104的一部分共同存储操作系统以协调图1中所示的各种组件的功能。

现在参考图2,示出了用于测试混合体系结构指令集的实施例的流程图200。块202规定定义针对第一基础体系结构的第一指令定义表。在一个或多个实施例中,指令定义表是从基础体系结构导出的。基础体系结构可以用于s/390体系结构、z/体系结构或任何其他基于体系结构的指令集。框204规定定义针对第二基础体系结构的第二指令定义表,其中,第一体系结构与第二基础体系结构不同。

流程图200的框206包括定义差量表,其中,差量表定义体系结构特定行为。示例行为可能会影响操作,包括如何从存储中写入和读取数据。差量表可以由系统操作手动定义,其中,差量表描述了基础体系结构的特定指令在得到的混合体系结构中的行为方式。在一个或多个实施例中,至少一个差量表被用于修改基础体系结构的指令。

框208规定基于差量表以及第一指令定义表或第二指令定义表中的至少一个来生成混合体系结构表。框210规定基于混合体系结构表执行测试,其中,混合体系结构表用于在第一基础体系结构和第二基础体系结构之间兼容的混合体系结构。在一个或多个实施例中,混合体系结构在第一体系结构和第二体系结构之间以兼容模式操作,其中,兼容模式支持旧体系结构。例如,针对s/390的兼容模式将允许旧s/390体系结构的许多程序在z/体系结构中操作。混合体系结构将提供用于测试系统仿真的框架。

现在参考图3,示出了用于测试混合体系结构指令集的流程图300。块302规定从第一指令定义表或第二指令定义表中的至少一个指令定义表中选择第一指令。

框304规定在差量表中搜索第一指令。块306响应于在差量表中定位第一指令,根据差量表修改指令。如果所选择的第一指令存在于差量表中,则该指令在被保存在混合体系结构表中之前将被修改。

框308规定将修改的指令添加到混合体系结构表。在一个实施例中,通过将已经位于差量表中的修改指令添加到混合表来生成混合体系结构。否则,对于差量表中不存在的指令,未经修改的指令将被添加到混合体系结构表中。块310包括重复在差量表中搜索第一指令定义表或第二指令定义表中的至少一个指令定义表的后续指令。在一个或多个实施例中,将逐行地在差量表中搜索基础体系结构的每个指令,直到在基础体系结构中没有剩余的指令尚未在差量表中被搜索。

框312规定响应于搜索到后续指令而更新混合体系结构表。在差量表中搜索每个指令之后,该指令将以原始形式或基于差量表的修改形式添加到混合表中,以形成用于测试混合体系结构的最终指令集。

现在参考图4,示出了用于测试混合体系结构指令集的框图400。s/390指令集402表示第一基础体系结构,z/体系结构指令集404表示第二基础体系结构。差量表406包括对特定体系结构行为将如何在混合体系结构下操作的描述。s/390兼容指令集408表示基于差量表406和包括指令集402、404的表生成的混合体系结构。在测试期间使用s/390兼容指令集408。生成混合指令集以创建在s/390兼容模式下支持的最终指令集。

现在参考图5,示出了用于测试混合体系结构指令集的框图500。类似于图4,图5提供第一指令集502和第二指令集504,其中,第一指令集用于s/390体系结构,第二指令集用于z/体系结构。差量表506包括描述如何在混合体系结构中修改体系结构特定行为的指令。混合指令集508描绘了基于差量表506和基础体系结构502、504的多个得到的混合指令集。混合体系结构指令将用于测试系统的兼容模式。

现在参考图6,示出了用于测试混合体系结构指令集的框图600。体系结构定义表a602表示基础体系结构a。体系结构定义表a602包括多个指令。这些指令分别包括add1和sub1指令、加法和减法指令。体系结构定义表b604表示基础体系结构b。体系结构定义表b604包括多个指令,该多个指令包括add2和sub2。每个基础体系结构分别定义这些指令。例如,一个基础体系结构可以添加/减去32位数字,而其他基础体系结构可以添加/减去64位数字。

框图600描绘了差量表606。基于基础体系结构手动生成差量表。在另一个实施例中,可以使用多个差量表。差量表描述了如何在混合体系结构中修改基础表的指令。在一个或多个实施例中,差量表将用于在将指令添加到混合体系结构表之前修改所识别的指令。在一个示例中,差量表606定义add指令应该如基础体系结构定义表a602所定义的那样使用,而sub指令应该如基础体系结构定义表b604所定义的那样使用。

混合体系结构表608包括已经基于基础体系结构定义表602、604和差量表606添加的指令。在示例中,如果选择基础体系结构a,则将通过添加来自表b的减法来生成混合表。同样,如果使用基础体系结构b,则add指令将从表a添加到混合表中。混合体系结构表是基于基础体系结构定义表和差量表生成的。

现在参考图7,示出了流程图700。在已经为每个基础体系结构生成每个体系结构定义表(基础表)并且已经定义了差量表之后,如框702所示,从基础表中选择指令。块704规定在差量表中搜索所选择的指令,并且判定块706确定是否在差量表中找到所选择的指令。如果是,则框708规定修改来自基础表的所选择的指令。修改所选择的指令后,修改后的指令被保存在混合表中。在一个或多个实施例中,可以通过重新定义指令的“itext”字段,重新定义指令所面临的异常类型,以及重新定义用于构建和仿真指令的条目指针来修改指令。如果不是,则块710规定在混合表中保存所选择的指令。在一个或多个实施例中,如果指令在测试期间在非混合体系结构下运行,则将使用来自基础表的指令,其中差量定义对在非混合体系结构中运行的指令没有影响。块712规定该过程继续,直到基础表用尽指令并且已经在差量表中搜索了基础表的每个指令。

本发明可以是系统、方法和/或计算机程序产品。该计算机程序产品可以包括一个计算机可读存储介质(或多个计算机可读存储介质),其上具有计算机可读程序指令,用于使处理器执行本发明的各方面。

计算机可读存储介质可以是有形设备,其可以保留和存储指令以供指令执行设备使用。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字通用光盘(dvd)、记忆棒、软盘、诸如在其上记录有指令的打孔卡或凹槽内凸起结构的机械编码装置、以及前述的任何合适的组合。这里使用的计算机可读存储介质不应被解释为暂时信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆传递的光脉冲)或通过电线传输的电信号。

这里描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如,因特网,局域网,广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。

用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括诸如smalltalk,c++等的面向对象的编程语言,以及诸如“c”编程语言或类似编程语言的传统过程编程语言。计算机可读程序指令可以完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立的软件包执行、部分地在用户的计算机上并且部分地在远程计算机上执行、或完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者,可以连接到外部计算机(例如,利用互联网服务提供商来通过互联网连接)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来个性化定制电子电路,该电子电路执行计算机可读程序指令,以便执行本发明的各方面。

这里参考根据本发明实施例的方法,装置(系统)和计算机程序产品的流程图图示和/或框图来描述本发明的各方面。将理解,流程图图示和/或框图中的每个框以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令实现。

这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器来生产出机器,以使得通过计算机的处理器或其它可编程数据处理装置执行的指令创建用于实现流程图和/或一个框图块或多个框图块中所指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,这些计算机可读程序指令可以使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,以使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或一个框图块或多个框图块中指定的功能/动作的各方面的指令。

计算机可读程序指令还可以被加载到计算机,其它可编程数据处理装置或其它设备上,以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,这样在计算机、其它可编程装置或其它设备上执行的指令实现在流程图和/或一个框图块或多个框图块中指定的功能/动作。

附图中的流程图和框图示出根据本发明的各种实施例的系统,方法和计算机程序产品的可能实施方式的体系结构、功能和操作。在这方面,流程图或框图中的每个框可以表示模块、程序段或指令的一部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方式中,框中所标注的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以基本上并行地执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可以由执行特定功能或动作,或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1