一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于知识基的随机指令生成方法、装置及存储介质

2023-02-06 09:48:57 来源:中国专利 TAG:

技术特征:
1.一种基于知识基的随机指令生成方法,其特征在于,包括:获取输入参数,根据知识基的架构测试知识对所述输入参数进行解析,获取目标指令的指令操作名称;所述知识基包括架构测试知识及指令操作码、寄存器和立即数的先验规则;根据所述指令操作名称和所述知识基的指令操作码的先验规则,调用指令操作码生成函数,随机生成指令操作码;根据所述指令操作名称,调用对应的指令参数模型,获取所述目标指令的指令参数数据;其中,一个所述指令参数模型对应一个指令操作名称,所述指令参数数据包括寄存器参数数据和立即数参数数据;根据所述指令参数数据和知识基的寄存器和立即数的先验规则,调用对应的参数生成函数,随机生成对应的指令参数值;根据所述指令操作码对应的指令汇编格式,对所述指令参数值进行排列,生成一条具体指令;将所述具体指令写入指令模拟器中进行实时仿真,以使指令模拟器生成至少一个输出指令和指令执行轨迹;当所述输出指令的数量满足预设条件时,将所有所述输出指令和所述指令执行轨迹发送到测试程序进行测试。2.如权利要求1所述的一种基于知识基的随机指令生成方法,其特征在于,所述根据知识基的架构测试知识对所述输入参数进行解析,获取目标指令的指令操作名称,具体为:判断输入参数是否包含指令操作名称;其中,所述输入参数包括所述目标指令的指令操作名称和指令数量;或,所述输入参数包括所述目标指令的指令操作类型和指令数量;若输入参数包含所述目标指令的指令操作名称,则直接获取所述指令操作名称;若输入参数包含所述目标指令的指令操作类型且不带有目标指令的指令操作名称,则根据所述指令操作类型,从知识基的架构测试知识中获取对应指令类型的指令宏;其中,所述指令宏包括同一类型的指令操作名称的集合,所述架构测试知识包括不同处理器指令集架构中的所有指令。3.如权利要求1所述的一种基于知识基的随机指令生成方法,其特征在于,所述调用指令操作码生成函数,随机生成指令操作码,具体为:调用对应的指令操作名称的指令操作码生成函数,所述指令操作码生成函数包括第一操作码生成子函数、第二操作码生成子函数和第三操作码生成子函数;所述操作码生成函数根据所述知识基的指令的操作码的先验规则生成;所述第一操作码生成子函数生成的操作码和上一条指令的操作码相同,所述第二操作码生成子函数生成的操作码和上一条指令操作码不同,所述第三操作码生成子函数生成未覆盖到的指令操作码;结合指令历史记录表中的操作码生成历史记录表,动态调整第一操作码生成子函数、第二操作码生成子函数和第三操作码生成子函数的权重;根据设置的权重随机选择一个操作码生成子函数生成指令操作码。4.如权利要求1所述的一种基于知识基的随机指令生成方法,其特征在于,所述调用对应的参数生成函数,随机生成对应的指令参数值,具体为:根据寄存器参数数据,调用寄存器生成函数,随机生成寄存器参数值;其中,所述寄存
器参数数据包括所述目标指令的寄存器的定义、数量和值域范围;一个所述目标指令的寄存器对应一个所述寄存器参数值;所述寄存器生成函数根据所述知识基的指令的寄存器的先验规则生成;根据立即数参数数据,调用立即数生成函数,随机生成立即数参数值;其中,所述立即数参数数据包括所述目标指令的立即数的定义、数量和值域范围;一个所述目标指令的立即数对应一个所述立即数参数值;所述立即数生成函数根据所述知识基的指令的立即数的先验规则生成。5.如权利要求4所述的一种基于知识基的随机指令生成方法,其特征在于,所述调用寄存器生成函数,随机生成寄存器参数值,具体为:调用寄存器生成函数,所述寄存器生成函数包括第一寄存器生成子函数、第二寄存器生成子函数、第三寄存器生成子函数和第四寄存器生成子函数;所述第一寄存器生成子函数依赖单条指令间寄存器,所述第二寄存器生成子函数依赖相邻指令间寄存器,所述第三寄存器生成子函数依赖多条指令间寄存器,所述第四寄存器生成子函数生成未覆盖到的寄存器;设置第一寄存器生成子函数、第二寄存器生成子函数、第三寄存器生成子函数和第四寄存器生成子函数的权重;根据设置的权重随机选择一个寄存器生成子函数生成寄存器参数值。6.如权利要求4所述的一种基于知识基的随机指令生成方法,其特征在于,所述调用立即数生成函数,随机生成立即数参数值,具体为:调用立即数生成函数,所述立即数生成函数包括第一立即数生成子函数、第二立即数生成子函数、第三立即数生成子函数、第四立即数生成子函数和第五立即数生成子函数;所述第一立即数生成子函数是依赖均匀分布生成立即数,第二立即数生成子函数以寄存器参数为基础生成立即数,第三立即数生成子函数根据同一访存地址生成立即数,第四立即数生成子函数根据连续访存地址生成立即数,第五立即数生成子函数通过构造复杂分支生成立即数;结合指令历史记录表和寄存器资源模型,动态调整设置第一立即数生成子函数、第二立即数生成子函数、第三立即数生成子函数、第四立即数生成子函数和第五立即数生成子函数的权重;根据设置的权重随机选择一个立即数生成子函数生成立即数参数值。7.如权利要求1所述的一种基于知识基的随机指令生成方法,其特征在于,所述根据所述指令操作码对应的指令汇编格式,对所述指令参数值进行排列,生成一条具体指令,还包括:若所述具体指令为分支指令,则根据指令操作码、寄存器参数值和立即数参数值,计算所述具体指令的跳转目标地址和不跳转后续地址;当所述具体指令发生跳转时,在所述不跳转的后续地址上增加若干条随机生成的第一简单运算的指令和若干条第一分支指令;当所述具体指令不发生跳转时,在所述跳转的目标地址上增加若干条随机生成的第二简单运算的指令和若干条第二分支指令;其中,所述第一分支指令和所述第二分支指令分别用于检测处理器分支预测的功能。8.如权利要求1所述的一种基于知识基的随机指令生成方法,其特征在于,所述将所述
具体指令写入指令模拟器中进行实时仿真,以使指令模拟器生成至少一个输出指令和指令执行轨迹,具体为:将所述具体指令写入指令模拟器中进行实时仿真,以使指令模拟器生成一个存放所述具体指令的指令地址,根据所述具体指令的功能调用对应的功能函数生成至少一个输出指令和执行轨迹,根据所述输出指令更新下一条指令存放地址。9.一种基于知识基的随机指令生成装置,其特征在于,包括输入参数获取模块、指令求解模块、指令生成模块和指令输出模块;所述输入参数获取模块用于获取输入参数,根据知识基的架构测试知识对所述输入参数进行解析,获取目标指令的指令操作名称;所述知识基包括架构测试知识及指令操作码、寄存器和立即数的先验规则;所述指令求解模块用于根据所述指令操作名称和所述知识基的指令操作码的先验规则,调用指令操作码生成函数,随机生成指令操作码;根据所述指令操作名称,调用对应的指令参数模型,获取所述目标指令的指令参数数据;其中,一个所述指令参数模型对应一个指令操作名称,所述指令参数数据包括寄存器参数数据和立即数参数数据;根据所述指令参数数据和知识基的寄存器和立即数的先验规则,调用对应的参数生成函数,随机生成对应的指令参数值;根据所述指令操作码对应的指令汇编格式,对所述指令参数值进行排列,生成一条具体指令;所述指令生成模块用于将所述具体指令写入指令模拟器中进行实时仿真,以使指令模拟器生成至少一个输出指令和指令执行轨迹;所述指令输出模块用于当所述输出指令的数量满足预设条件时,将所有所述输出指令和所述指令执行轨迹发送到测试程序进行测试。10.如权利要求9所述的一种基于知识基的随机指令生成装置,其特征在于,所述输入参数获取模块包括解析单元;所述解析单元用于根据知识基的架构测试知识对所述输入参数进行解析,获取目标指令的指令操作名称,具体为:判断输入参数是否包含指令操作名称;其中,所述输入参数包括所述目标指令的指令操作名称和指令数量;或,所述输入参数包括所述目标指令的指令操作类型和指令数量;若输入参数包含所述目标指令的指令操作名称,则直接获取所述指令操作名称;若输入参数包含所述目标指令的指令操作类型且不带有目标指令的指令操作名称,则根据所述指令操作类型,从知识基的架构测试知识中获取对应指令类型的指令宏;其中,所述指令宏包括同一类型的指令操作名称的集合,所述架构测试知识包括不同处理器指令集架构中的所有指令。11.如权利要求9所述的一种基于知识基的随机指令生成装置,其特征在于,所述指令求解模块包括指令操作码生成单元、寄存器参数值生成单元和立即数参数值生成单元;所述指令操作码生成单元用于根据所述指令操作名称和所述知识基,调用指令操作码生成函数,随机生成指令操作码;根据所述指令操作名称,调用对应的指令参数模型,获取所述目标指令的指令参数数据;其中,一个所述指令参数模型对应一个指令操作名称,所述指令参数数据包括寄存器参数数据和立即数参数数据;
所述寄存器参数值生成单元用于根据寄存器参数数据,调用寄存器生成函数,随机生成寄存器参数值;其中,所述寄存器参数数据包括所述目标指令的寄存器的定义、数量和值域范围;一个所述目标指令的寄存器对应一个所述寄存器参数值;所述寄存器生成函数根据所述知识基的指令的寄存器的先验规则生成;所述立即数参数值生成单元用于根据立即数参数数据,调用立即数生成函数,随机生成立即数参数值;其中,所述立即数参数数据包括所述目标指令的立即数的定义、数量和值域范围;一个所述目标指令的立即数对应一个所述立即数参数值;所述立即数生成函数根据所述知识基的指令的立即数的先验规则生成。12.如权利要求9所述的一种基于知识基的随机指令生成装置,其特征在于,所述指令生成模块包括具体指令生成单元、分支指令处理单元和输出指令生成单元;所述具体指令生成单元用于根据所述指令操作码对应的指令汇编格式,对所述指令参数值进行排列,生成一条具体指令;所述分支指令处理单元用于若所述具体指令为分支指令,则根据指令操作码、寄存器参数值和立即数参数值,计算所述具体指令的跳转目标地址和不跳转后续地址;当所述具体指令发生跳转时,在所述不跳转的后续地址上增加若干条随机生成的第一简单运算的指令和若干条第一分支指令;当所述具体指令不发生跳转时,在所述跳转的目标地址上增加若干条随机生成的第二简单运算的指令和若干条第二分支指令;其中,所述第一分支指令和所述第二分支指令分别用于检测处理器分支预测的功能;所述输出指令生成单元用于将所述具体指令写入指令模拟器中进行实时仿真,以使指令模拟器生成一个存放所述具体指令的指令地址,根据所述具体指令的功能调用对应的功能函数生成至少一个输出指令和执行轨迹,根据所述输出指令更新下一条指令存放地址。13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行如权利要求1至8中任意一项所述的一种基于知识基的随机指令生成方法。

技术总结
本发明公开了一种基于知识基的随机指令生成方法、装置及存储介质,方法包括:知识基包括架构测试知识、指令的操作码、寄存器和立即数的先验规则;根据知识基对输入参数进行解析,获取目标指令的指令操作名称;根据知识基调用指令操作码生成函数,随机生成指令操作码;根据知识基调用指令参数模型,获取目标指令的指令参数数据;调用对应的参数生成函数,随机生成对应的指令参数值;根据指令操作码对应的指令汇编格式,对指令参数值进行排列,生成一条具体指令;将具体指令写入指令模拟器中进行实时仿真,生成输出指令和指令执行轨迹;在知识基的指导下生成随机指令的方法可以作用于不同处理器指令集架构一致性检测。用于不同处理器指令集架构一致性检测。用于不同处理器指令集架构一致性检测。


技术研发人员:刘鹏 胡文超 王文 刘扬帆 王贺 施葹 沈秀红 乔栩
受保护的技术使用者:浙江大学
技术研发日:2022.11.07
技术公布日:2023/2/3
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献