基于代码的有向序列和随机选择指令生成代码的测试序列.pdf
《基于代码的有向序列和随机选择指令生成代码的测试序列.pdf》由会员分享,可在线阅读,更多相关《基于代码的有向序列和随机选择指令生成代码的测试序列.pdf(17页完成版)》请在专利查询网上搜索。
1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910927051.1 (22)申请日 2019.09.27 (30)优先权数据 1817213.0 2018.10.23 GB (71)申请人 ARM有限公司 地址 英国剑桥 (72)发明人 迪帕克耶吉娜 乌玛雷努卡苏博拉马尼亚姆 皮楚卡 (74)专利代理机构 北京东方亿思知识产权代理 有限责任公司 11258 代理人 林强 (51)Int.Cl. G06F 11/36(2006.01) G06F 7/58(2006.01) (54)发明名称 基于代码的有向序列和随机选择。
2、指令生成 代码的测试序列 (57)摘要 本公开提供了基于代码的有向序列和随机 选择指令生成代码的测试序列。 描述了一种用于 生成代码的测试序列108的方法、 装置和计算机 程序, 代码的测试序列将在目标处理系统106上 运行以用于测试目标处理系统。 代码的测试序列 基于一个或多个代码的有向序列102, 其中一个 或多个代码的有向序列是用于测试目标处理系 统的预定部分的一个或多个有向指令的预定序 列。 该方法包括: 针对一个或多个代码的有向序 列中的至少一个, 在代码的有向序列中的一个或 多个插入点处插入随机选择的指令。 权利要求书2页 说明书7页 附图7页 CN 111090576 A 202。
3、0.05.01 CN 111090576 A 1.一种生成代码的测试序列的方法, 所述代码的测试序列要被运行在目标处理系统上 用于测试所述目标处理系统, 其中: 所述代码的测试序列基于一个或多个代码的有向序列, 其中, 所述一个或多个代码的 有向序列是用于测试所述目标处理系统的预定部分的一个或多个有向指令的预定序列; 以 及 所述方法包括: 针对所述一个或多个代码的有向序列中的至少一个, 在该代码的有向 序列中的一个或多个插入点处插入随机选择的指令。 2.根据权利要求1所述的方法, 其中, 所述有向序列的结果不受所述随机选择的指令的 影响。 3.根据权利要求1和2中任一项所述的方法, 包括: 。
4、基于至少一个随机数选择以下项中 的至少一项: 所述随机选择的指令的指令类型; 所述随机选择的指令所引用的资源; 插入多少随机选择的指令; 以及 插入所述随机选择的指令的插入点。 4.根据前述权利要求中任一项所述的方法, 包括: 针对所述有向序列中的每个指令, 确 定在该指令之后是否允许插入点。 5.根据前述权利要求中任一项所述的方法, 包括: 针对所述代码的有向序列中的每个 插入点, 在所述代码的有向序列中的该插入点处插入m个随机选择的指令, 其中m0。 6.根据前述权利要求中任一项所述的方法, 包括: 选择将由所述随机选择的指令使用 的资源, 该资源不同于由所述代码的有向序列中的指令所使用的。
5、资源。 7.根据权利要求6所述的方法, 其中, 基于至少一个随机数选择将由所述随机选择的指 令使用的资源。 8.根据权利要求6和7中任一项所述的方法, 包括: 在开始将随机选择的指令插入到所 述代码的有向序列中之前, 生成由所述代码的有向序列中的指令使用的资源列表。 9.根据权利要求6和7中任一项所述的方法, 包括: 维护由所述代码的有向序列中的指令使用的资源列表; 并且 当遇到所述代码的有向序列中的每个指令时, 更新所述资源列表以包括由该指令使用 的资源。 10.根据权利要求3和权利要求6至9中任一项所述的方法, 其中, 所述资源包括以下项 中的至少一项: 所述目标处理系统中的寄存器集合; 。
6、以及 所述目标处理系统中的存储器位置集合。 11.根据前述权利要求中任一项所述的方法, 其中, 所述随机选择的指令是以下各项中 的一项: 随机生成的指令集合; 以及 从预编程的指令集合中随机选择的指令。 12.根据前述权利要求中任一项所述的方法, 其中, 所述代码的有向序列中的指令是由 以下项中的一项生成的预编程指令: 权利要求书 1/2 页 2 CN 111090576 A 2 编程器; 计算机程序; 以及 编译器。 13.根据前述权利要求中任一项所述的方法, 包括: 针对所述有向序列中的至少一个, 在该有向序列之前或之后插入随机选择的指令。 14.根据前述权利要求中任一项所述的方法, 其中。
7、, 在执行所述代码的测试序列期间执 行对所述随机选择的指令的插入。 15.一种计算机程序, 所述计算机程序在计算机上执行时, 使得所述计算机生成代码的 测试序列, 所述代码的测试序列要被在目标处理系统上运行用于测试所述目标处理系统, 其中: 所述代码的测试序列基于一个或多个代码的有向序列, 其中, 所述一个或多个代码的 有向序列是用于测试所述目标处理系统的预定部分的一个或多个有向指令的预定序列; 以 及 通过针对所述一个或多个代码的有向序列中的至少一个, 在该代码的有向序列中的一 个或多个插入点处插入随机选择的指令, 来生成所述代码的测试序列。 16.一种计算机可读存储介质, 所述计算机可读存。
8、储介质存储根据权利要求15所述的 计算机程序。 17.一种装置, 包括被配置为执行根据权利要求1至14中任一项所述的方法的测试代码 生成电路。 18.一种计算机可读存储介质, 其存储由根据权利要求1至14中任一项所述的方法生成 的所述代码的测试序列。 权利要求书 2/2 页 3 CN 111090576 A 3 基于代码的有向序列和随机选择指令生成代码的测试序列 技术领域 0001 本技术涉及目标处理系统的测试。 背景技术 0002 在许多系统中, 能够测试处理系统的功能正确性是有用的, 特别是在果目标处理 系统要在安全关键的环境中使用的情况下。 例如, 对目标处理系统的测试可能涉及检查处 理。
9、系统的各种微架构特征(例如, 寄存器、 高速缓存、 转换后备缓冲器(TLB)和存储器管理单 元(MMU)的功能。 可以在目标处理系统上执行代码的测试序列以测试目标处理系统的微体 系结构方面。 发明内容 0003 从本技术的第一示例来看, 提供了一种生成代码的测试序列的方法, 代码的测试 序列要被运行在目标处理系统上用于测试目标处理系统, 其中: 0004 代码的测试序列基于一个或多个代码的有向序列, 其中, 一个或多个代码的有向 序列是用于测试目标处理系统的预定部分的一个或多个有向指令的预定序列; 以及 0005 该方法包括: 针对一个或多个代码的有向序列中的至少一个, 在代码的有向序列 中的。
10、一个或多个插入点处插入随机选择的指令。 0006 从本技术的另一示例来看, 提供了一种计算机程序, 当在计算机上执行该计算机 程序时, 使得计算机生成将在目标处理系统上运行以用于测试目标处理系统的代码的测试 序列, 其中: 0007 代码的测试序列基于一个或多个代码的有向序列, 其中, 一个或多个代码的有向 序列是用于测试目标处理系统的预定部分的一个或多个有向指令的预定序列; 以及 0008 通过针对一个或多个代码的有向序列中的至少一个, 在代码的有向序列中的一个 或多个插入点处插入随机选择的指令, 来生成代码的测试序列。 0009 从本技术的另一示例来看, 提供了一种存储上述计算机程序的计算。
11、机可读存储介 质。 该存储介质可以是非暂时性存储介质。 0010 从本技术的另一示例来看, 提供了一种包括被配置为执行上述方法的测试代码生 成电路的装置。 0011 从本技术的另一示例来看, 提供了一种存储由该方法生成的代码的测试序列的计 算机可读存储介质。 该存储介质可以是非暂时性存储介质。 附图说明 0012 从示例的以下描述中, 本技术的其他方面、 特征和优点将变得显而易见, 这些描述 将结合附图进行阅读, 其中: 0013 图1是可以在其上实现本技术的系统的示意图; 0014 图2是可以使用代码的测试序列进行测试的目标处理系统的示例的示意图; 说明书 1/7 页 4 CN 111090。
12、576 A 4 0015 图3和图4是代码的测试序列的部分的示例的示意图; 0016 图5是示出生成代码的测试序列的方法的示例的流程图。 0017 图6是代码的测试序列的部分的示意图; 以及 0018 图7和图8是示出生成代码的测试序列的方法的示例的流程图。 具体实施方式 0019 在参考附图讨论实施例之前, 提供对示例性实施例和相关优点的以下描述。 0020 目标处理系统可以通过多种方式进行测试。 例如, 可以通过生成要由目标处理系 统执行的代码的有向序列来测试目标处理系统, 该有向序列是旨在测试目标处理系统的特 定架构或微架构特征(例如, 数据路径、 寄存器、 高速缓存、 TLB、 MMU。
13、、 内存控制器、 乱序处理 组件(例如, 寄存器重命名或重排序缓冲器等)的指令的序列。 有向序列的指令利用了目标 处理系统的一个或多个微架构组件, 因此允许观察到这些组件的功能并且将其与预期结果 进行比较。 有向序列允许对特定期望组件进行测试; 然而, 这种方法的缺点是测试可能不会 覆盖这些组件的一些区域。 例如, 当运行代码的有向序列时, 仅特定缓冲器、 寄存器或高速 缓存的前几个条目可以被填充, 并且因此后续条目可能无法测试。 这也可能意味着缓冲器、 寄存器或高速缓存条目的某些组合可能无法测试。 0021 根据一些示例, 本技术的方法涉及基于一个或多个代码的有向序列, 生成要在目 标处理系。
14、统上运行的代码的测试序列, 该一个或多个代码的有向序列是用于测试目标处理 系统的预定部分的一个或多个有向指令的预定序列。 通过在一个或多个插入点处将随机选 择的指令插入代码的有向序列中, 来生成代码的测试序列。 0022 所生成的代码的测试序列是根据上述方法生成的指令的序列, 并且被设计为在目 标处理电路(目标处理系统)上运行以测试目标处理系统的微架构组件。 有向序列中的每个 插入点在代码的有向序列中的给定指令之前或之后(尽管在每个指令之前或之后不一定存 在插入点, 例如在其中需要顺序地执行两个或更多个指令的情况下), 并且根据一些随机参 数来选择随机选择的指令请注意, 在本申请中,“随机” 。
15、一词也旨在涵盖 “伪随机” , 因为实 际上, 可能不合理地招致提供真随机数发生器的花费伪随机数发生器是足够的。 0023 基于一个或多个有向序列以及随机选择的指令来生成代码的测试序列, 允许更好 地测试目标处理系统的微架构组件, 因为随机指令确保诸如高速缓存分配、 缓冲器占用率 等的参数的更多变化, 从而可以更真实地模拟实际处理过程中的预期行为。 通过将随机选 择的指令插入到有向序列中, 可以测试微架构组件的不可预测的(随机)序列, 例如针对有 向序列的指令的高速缓存/缓冲器条目的不可预测的布置。 这降低了一些微架构特征的一 些区域通常会被代码的测试序列遗漏的可能性, 并且还改变了要测试的高。
16、速缓存和缓冲器 条目的可能组合。 此外, 可以利用不同的指令模式(例如, 不同的随机插入)多次运行该测 试, 从而减少了针对有向序列通过测试的机会, 这仅是因为测试恰好发生以避免探测发生 故障的拐角情况。 因此, 对目标处理系统进行了更彻底的测试, 同时仍然确保对特定期望的 微架构组件进行了测试。 0024 在一些示例中, 有向序列的结果不受随机选择的指令的影响是有用的。 0025 例如, 可以从符合某些标准的指令(例如, 将不会导致故障、 不需要特定的对齐指 令以及不会导致基址寄存器或程序计数器被更新的指令)中选择随机选择的指令。 如果指 说明书 2/7 页 5 CN 111090576 A。
17、 5 令的有向序列的执行结果不是预期的结果, 则测试人员可以确定目标处理系统存在故障, 如果结果的变化是由于随机指令的插入而造成的, 则这将是不正确的。 因此, 确保随机选择 的指令不会影响有向序列的结果, 引起对目标处理系统执行更准确的测试。 0026 在一些示例中, 基于至少一个随机数来选择以下项中的至少一项: 随机选择的指 令的指令类型、 随机选择的指令所引用的资源、 插入多少随机选择的指令、 以及插入随机选 择的指令的插入点。 0027 该至少一个随机数可以是根据任何已知技术生成的随机参数, 并且将理解, 随机 数可以是伪随机的, 如上所述。 指令类型可以包括加载/存储指令、 算术逻辑。
18、指令或任何其 它类型的指令。 基于随机参数选择上面列出的参数中的一个或多个进一步增加了在测试期 间使用的微架构组件的使用的不可预测性, 进一步提高了测试的彻底性, 同时仍然测试由 有向序列探测的预定微架构特征。 0028 在一些示例中, 对于代码的有向序列中的每个插入点, 在代码的有向序列中的该 插入点处插入m个随机选择的指令, 其中m0。 0029 因此, 遵循上述方法产生了代码的测试序列, 其中在有向序列中的每个插入点处 插入零至m个随机选择的指令, 其中在有向序列中的每个指令之后可以存在插入点, 或者在 两个或更多个指令的组之后可以存在插入点。 这导致对目标处理系统的更彻底的测试。 00。
19、30 在一些示例中, 选择将由随机选择的指令所使用的资源, 使得确保它们不同于由 代码的有向序列中的指令所使用的资源。 0031 这防止了随机选择的指令影响代码的有向序列的结果, 以与上述方式类似的方式 提高了测试的准确性。 0032 在一些示例中, 基于至少一个随机数来选择将由随机选择的指令使用的资源。 0033 因此, 由代码的测试序列测试的资源是不可预测的, 从而提高了测试的彻底性。 随 机数是随机生成的或随机选择的数(或伪随机数)。 0034 在一些示例中, 在开始将随机选择的指令插入到有向序列中之前, 生成由代码的 有向序列中的指令所使用的资源列表。 0035 这允许通过在选择所述资。
20、源时查阅所生成的列表, 为随机选择的指令选择将不会 与有向序列中的指令所使用的那些资源发生冲突的资源。 该列表可以被存储在数据存储位 置中。 可以为每个有向序列生成单独的列表, 或者可以为多个有向序列生成单个列表。 0036 在一些示例中, 维护由代码的有向序列中的指令所使用的资源列表, 并且当遇到 有向序列中的每个指令时, 更新资源列表以包括由该指令所使用的资源。 0037 这是另一种用于确保为随机选择的指令而选择的资源不会与有向序列中的指令 所使用的那些资源发生冲突的技术。 在遇到或解析指令时 “动态(on the fly)” 维护这样的 资源列表, 即使在已经遇到代码的有向序列中的所有指。
21、令之前, 也允许开始生成代码的测 试序列。 这提高了生成测试序列的效率。 0038 在一些示例中, 由随机选择的指令或代码的有向序列中的指令所使用的资源包括 以下各项中的至少一项: 目标处理系统中的寄存器的集合, 以及目标处理系统中的存储器 位置的集合。 0039 在一些示例中, 随机选择的指令是以下各项中的一项: 随机生成的指令的集合, 以 及从预编程的指令的集合中随机选择的指令。 说明书 3/7 页 6 CN 111090576 A 6 0040 随机生成的指令可以是根据任何已知技术生成的指令, 只要它们是基于至少一个 随机参数而生成的。 预编程的指令的集合可以是由程序员编写的指令, 或者。
22、由计算机程序 或编译器编写的指令。 0041 在一些示例中, 代码的有向序列中的指令由以下各项中的一项进行预编程: 程序 员、 计算机程序和编译器。 0042 有向序列中的指令被编写, 以便他们测试目标处理系统内的微架构结构的特定期 望集合。 0043 在一些示例中, 随机选择的指令被插入在代码的有向序列之前或之后。 0044 这进一步增加了微架构操作参数(例如, 缓冲器占用率、 高速缓存分配、 寄存器压 力等)的不可预测性, 从而进一步提高了测试的彻底性。 0045 在一些示例中, 在代码的测试序列的执行期间来执行随机选择的指令的插入。 0046 在这样的示例中, 在由目标处理电路执行测试序。
23、列期间,“动态” 执行随机选择的 指令的插入。 0047 在一些示例中, 提供了一种计算机程序, 当在计算机上执行该计算机程序时, 使得 计算机生成将在目标处理系统上运行以用于测试目标处理系统的代码的测试序列。 代码的 测试序列基于一个或多个代码的有向序列, 其中, 一个或多个代码的有向序列是用于测试 目标处理系统的预定部分的一个或多个有向指令的预定序列, 以及通过针对一个或多个代 码的有向序列中的至少一个, 在代码的有向序列中的一个或多个插入点处插入随机选择的 指令, 来生成代码的测试序列。 0048 在一些示例中, 提供了一种用于存储上述程序的计算机可读存储介质。 0049 例如, 该存储。
24、介质可以是闪存驱动器、 CD或DVD或任何其他形式的非暂时性存储装 置。 0050 在一些示例中, 提供了一种包括被布置为执行上述方法的测试代码生成电路的装 置。 0051 现在将参考附图来描述特定实施例。 0052 图1是可以在其上实现本技术的系统的示意图。 特别地, 图1示出了测试代码生成 电路100, 其被配置为执行本申请中所述的测试代码生成方法。 0053 测试代码生成电路100将至少一个代码的有向序列102和随机指令104的集合作为 输入, 其中随机指令104是随机选择的指令的集合和能够由测试代码生成电路100随机选择 的候选指令的集合中的一个。 代码的有向序列102包括预编程的指令。
25、的序列, 预编程的指令 的序列被设计为测试目标系统106的微架构特征(例如, 寄存器、 高速缓存、 存储位置等)的 预定选择, 该目标系统106是被配置为执行指令的处理电路。 指令的有向序列102可以由程 序员编写或由计算机程序生成, 并且由测试代码生成电路100从存储介质中读取。 随机指令 104可以是从程序员所识别的指令的预定集合中选择的指令, 或者它们可以代替地是随机 生成的指令(其中 “随机” 应当被认为包括 “伪随机” )。 0054 基于这些输入, 如将在下面更详细解释的, 测试代码生成电路100被配置为生成将 在目标系统106上运行以测试目标系统106的代码的测试序列108。 0。
26、055 图2示意性地示出了具有包括多个流水线级的处理流水线的目标数据处理装置 (目标处理系统)106的示例。 流水线包括分支预测器204, 用于预测分支指令的结果并且生 说明书 4/7 页 7 CN 111090576 A 7 成一系列将提取的指令的提取地址。 0056 流水线还包括提取单元206, 其从指令高速缓存208或其他存储器结构232、 234中 提取指令。 提取级206对由提取地址识别的指令进行提取, 并且解码级210对所提取的指令 进行解码以生成用于控制流水线的后续级的控制信息。 0057 重命名级212执行寄存器重命名, 以将由指令识别的架构寄存器指示符映射到识 别硬件中提供的。
27、寄存器214的物理寄存器指示符。 发布级216包括: 发布队列, 该发布队列将 等待执行的指令进行排队, 直到用于处理这些指令的所需操作数在寄存器214中可用为止; 以及选择电路, 选择电路用于选择指令以供执行级218执行。 执行级218执行指令以执行相 应的处理操作, 并且写回级220将所执行的指令的结果写回到寄存器214。 0058 执行级218可以包括多个执行单元, 例如用于评估分支指令是否已经正确预测的 分支单元221、 用于执行算术或逻辑操作的ALU(算术逻辑单元)222、 用于使用浮点操作数执 行操作的浮点单元224、 以及用于执行加载操作以将数据从存储器系统加载到寄存器214或 。
28、执行存储操作以将数据从寄存器214存储到存储器系统的加载/存储单元226。 在该示例中, 存储器系统包括一级指令高速缓存208、 一级数据高速缓存230、 在数据和指令之间共享的 二级高速缓存232以及主存储器234, 但是应当理解, 这仅仅是可能的存储器层次结构的一 个示例, 并且其他实现方式可以具有更多级的高速缓存或不同的布置。 可以使用用于控制 地址转换和/或存储器保护的存储器管理单元(MMU)235来控制对存储器的存取。 加载/存储 单元226可以使用MMU 235的转换后备缓冲器236来将由流水线生成的虚拟地址映射到识别 存储器系统内的位置的物理地址。 应当理解, 图2中所示的流水线。
29、仅仅是一个示例, 并且其 他示例可以具有不同的流水线级或执行单元的集合。 例如, 有序处理器可能没有重命名级 212。 0059 目标处理系统106包括若干个微架构组件, 该微架构组件可以使用由测试代码生 成电路100生成的代码的测试序列108进行测试。 这些组件包括寄存器214, 高速缓存208、 230、 232, TLB 236, MMU 235和存储器系统中的组件, 例如相干或不相干的互连、 探听过滤 器、 存储器控制器和与这些特征中的任何一个相关联的缓冲器。 0060 图3示出了可以在目标处理系统106上运行以测试目标处理系统106的微架构结构 的指令序列300的示意图。 指令序列3。
30、00包括插入到随机选择的指令序列302中的代码的有 向序列102(在图4中更详细地示出), 其示出了代码的有向序列102包括指令的预编程序列 402。 将指令的有向序列102与随机选择的指令的集合组合在一起允许测试目标系统106的 特定的微架构组件的集合, 以及在执行有向序列之前随机填充(population)高速缓存、 缓 冲器和TLB, 使得可以更好地探测微架构特征。 然而, 通过实施本技术的方法, 可以对测试代 码300进行进一步的改进。 0061 图5是示出用于生成改进的代码的测试序列108的这种方法的示例的流程图, 代码 的测试序列要被运行在目标处理系统106以测试目标系统106。 。
31、测试代码生成方法500其 可以由测试代码生成电路100执行从步骤502处开始。 0062 在步骤504中, 测试代码生成电路100接收代码的有向序列102。 代码的有向序列 102可以是将包括在代码的测试序列108中的多个代码的有向序列中的一个, 并且因此, 代 码的测试序列108可以基于该多个有向序列, 或者仅基于一个有向序列。 0063 在步骤506中, 将来自指令的随机集合104的随机多个指令插入到代码的有向序列 说明书 5/7 页 8 CN 111090576 A 8 102和插入点中。 从随机集合104中随机选择随机多个指令, 并且插入点是位于代码的有向 序列102中的指令402之间。
32、的点。 0064 在步骤508中, 确定是否存在任何更多的代码的有向序列要处理。 如果存在, 则该 方法返回到步骤504, 并且接收下一个代码的有向序列。 如果不存在, 则该方法继续到步骤 510, 在步骤510中代码的测试序列108被输出, 以在目标处理电路上运行。 0065 图6是由测试代码生成电路100根据图5中所示的测试代码生成方法500生成的代 码的测试序列108的示例的示意图。 0066 代码的测试序列108包括代码的有向序列102的指令402。 在代码的有向序列102的 一些或全部指令402之后是插入点, 从随机指令的集合104中随机选择的指令302可以被插 入到该插入点中。 因。
33、此, 由测试代码生成方法500生成的代码的测试序列108包括在有向序 列102中的每个指令402之后的0至m个随机选择的指令302, 其中m大于或等于0。 0067 因此, 如图6所示的代码的测试序列108使得目标系统106的微架构组件的预定集 合能够被代码的有向序列102中的指令402更彻底地测试, 这是通过扩展在测试序列102的 执行期间使用的处理能力或资源以创建更真实的处理来实现的。 因此, 例如, 该测试更有可 能达到高速缓存或缓冲器容量的极限, 从而导致更好地测试了系统将如何响应实际的处理 方案。 0068 图7示出了根据本技术的测试代码生成方法500a的示例。 0069 该方法开始。
34、于步骤702处, 在步骤702中, 接收代码的有向序列102。 在步骤704中, 对有向序列102进行解析以识别有向序列102中的指令所使用的资源。 尽管图中未示出, 但 是在该步骤处也可以生成由代码的有向序列102所使用的资源列表。 0070 在步骤706中, 确定数量i(最初设置为等于代码的有向序列102中的指令的数量) 是否大于零。 如果i不大于零, 则该方法进行到步骤722, 如下所述。 另一方面, 如果i大于零, 则方法替代地进行到步骤708, 在步骤708中, 基于用户给定的权重来选择随机数n。 将理解 的是, 随机数n旨在覆盖伪随机数。 用户可以指定权重, 例如针对n的最大数、 。
35、针对n的最小数 或或将影响选择某一n值的可能性的任何其它权重(例如, 与较高的n值相比, 较低的n值可 以以更大的概率被选择)。 n的选择可以基于一个或多个随机参数(例如, 随机生成的数)和 基于用户指定的参数来执行。 0071 在步骤710, 确定n是否大于零。 如果n不大于零, 则该方法进行到步骤718, 这将在 后面讨论。 然而, 如果n大于零, 则该方法进行到步骤712, 在步骤712中从指令的集合104中 随机选择指令。 在该示例中, 从指令的集合中选择随机指令的该指令的集合是指令的用户 定义的集合例如, 用户可以指定无故障的并且将不会导致对基址寄存器或程序计数器进 行更新的指令的集。
36、合。 然而, 应当注意, 在其他示例中, 指令的集合可以替代地是随机生成 的指令的集合。 0072 在任一示例中, 在步骤714中, 选择将由随机选择的指令所使用的资源的集合(例 如, 寄存器和存储器位置)。 所选择的资源与有向序列所使用的资源不同如果在解析步骤 704中生成了资源列表, 则为随机选择的指令选择不在该列表上的资源。 一旦选择了随机选 择的指令和资源的集合, 就将该指令插入到测试代码108中。 0073 在步骤716中, 将n的值减小1, 并且该方法返回到确定n是否大于零的步骤710。 0074 当n小于或等于零时, 该方法进行到步骤718, 在步骤718中, 将有向序列的指令插。
37、 说明书 6/7 页 9 CN 111090576 A 9 入到测试中。 在另一步骤720中, 将i的值减小1, 并且该方法返回到确定i是否大于零的步骤 706。 0075 当i等于零时(注意: 有向序列中的指令的数量不能为负), 该方法进行到步骤722, 在步骤722中确定是否存在任何更多的有向序列要处理。 如果存在更多的有向序列要处理, 则方法返回到接收步骤702; 如果不存在, 则该方法进行到步骤724, 在步骤724中输出代码 的测试序列。 0076 现在转到图8, 该图示出了图7中所示的用于生成代码的测试序列的方法的修改 500b。 0077 在该示例中, 当在步骤801中接收到代码。
38、的有向序列102时, 创建用于记录由有向 序列中的指令所使用的资源的列表, 但是此时未填充该列表。 0078 方法500b的其余部分按照图7进行, 除了针对有向序列中的每个指令, 在步骤802 中, 资源列表被更新为包括由该指令所使用的资源。 0079 应当注意, 图7中的方法500a和图8中的方法500b二者都是本技术的示例, 并且二 者均提供了增加目标处理系统106的测试效率和准确性的优点。 0080 图5、 图7和图8中描述的方法500还可以以计算机程序的形式在软件中实现该程 序可以被存储在非暂时性计算机可读存储介质(例如, CD、 DVD或闪存驱动器)上。 该计算机 程序可以由计算机执。
39、行, 并且在执行该计算机程序时, 使得计算机执行如图中所述的方法 500, 以生成将在目标处理系统106上运行的代码的测试序列108。 0081 可以将通过上述方法生成的指令的测试序列存储在存储介质上, 以供之后安装在 目标处理系统上, 从而当在目标处理系统上执行测试序列时, 可以对目标处理系统进行测 试。 0082 在本申请中, 词语 “被配置为” 用来表示装置的元件具有能够执行所定义的操作 的配置。 在本文中,“配置” 是指硬件或软件的互连的布置或方式。 例如, 装置可以具有提供 所定义的操作的专用硬件、 或者可以被编程以执行功能的处理器或其他处理设备。“被配置 为” 并不意味着需要以任何。
40、方式改变装置元件以提供所定义的操作。 0083 尽管本文已经参考附图详细描述了本发明的示意性实施例, 但是应当理解, 本发 明不限于那些精确的实施例, 并且在不脱离由所附权利要求书限定的本发明的范围和精神 的情况下本领域技术人员可以在其中进行各种改变和修改。 说明书 7/7 页 10 CN 111090576 A 10 图1 说明书附图 1/7 页 11 CN 111090576 A 11 图2 说明书附图 2/7 页 12 CN 111090576 A 12 图3 图4 说明书附图 3/7 页 13 CN 111090576 A 13 图5 说明书附图 4/7 页 14 CN 111090576 A 14 图6 说明书附图 5/7 页 15 CN 111090576 A 15 图7 说明书附图 6/7 页 16 CN 111090576 A 16 图8 说明书附图 7/7 页 17 CN 111090576 A 17 。
- 内容关键字: 基于 代码 序列 随机 选择 指令 生成 测试
用于挤压片状弹簧的压簧装置.pdf
用于回收硫酸装置低温废热的热量回收塔.pdf
汽车零部件冲压定位机构.pdf
弹簧快速弹出的送料装置.pdf
输液杆的主供电箱排水结构.pdf
农业经济果树种植嫁接用防护装置.pdf
车用尿素溶液水解反应装置.pdf
可自由组合堆叠式户用储能电源.pdf
财务凭证卷绕器.pdf
建筑施工卸料平台.pdf
具有应急照明功能的户内多功能储能电源.pdf
多托板自动分离机构.pdf
发动机精密配件加工用稳定支架.pdf
便于清理的橡胶促进剂过滤装置.pdf
防偏移内衣点胶机.pdf
耐插拔动力信号混合式储能防水连接器.pdf
棋类设备的智能裁判器、对弈棋子及棋类设备.pdf
大杯可脱带两用式文胸.pdf
振动传感器及车载扬声器系统.pdf
无酒精的香水配方及其制备方法.pdf
石油勘探用三角异型管电池壳性能检测装置及其检测方法.pdf
耐高温陶瓷纤维毡.pdf
转向器摇臂轴花键相对齿形位置间隙测具.pdf
盐碱土壤改良用松土装置.pdf
铝粉生产线.pdf
用于臭氧催化剂生产的混料器.pdf
新能源锂电池材料高效研磨设备及其研磨方法.pdf
地质勘测样品粉碎机.pdf
管道支撑架.pdf
行星减速机的防松脱结构.pdf
带音响装置的操作模块.pdf
基于机器视觉的反射膜生产质控的方法及系统.pdf
纸箱板钉箱机推纸装置.pdf
防水卷材浸油系统.pdf
可对涂覆液进行收集的涂布机用烘干机构.pdf
液液分离系统.pdf
电梯用安全光幕装置.pdf
中药饮片的分装称重设备.pdf
用于制作玄武岩纤维人造板的钢带加压装置.pdf
靠边滚筒输送机构.pdf
便于出料的TPU薄膜专用黑色母盛放装置.pdf
卫浴防水装置.pdf
粉体涂料生产用压片装置.pdf
吸集乳器.pdf
消化内科辅助治疗装置.pdf
可单双面涂布的多功能涂布设备.pdf
用于机械臂自动盖章机的盖章头.pdf
竖井管道的安装结构.pdf
超声波手术刀杆转动装置、超声波手术刀手柄及手术器械.pdf
车毂轴承外圈搬运用起吊勾爪.pdf
土木工程测量装置.pdf