生成可执行文件进行仿真切片恢复的CPU芯片仿真加速方法技术

技术编号:35445671 阅读:25 留言:0更新日期:2022-11-03 11:58
一种生成可执行文件进行仿真切片恢复的CPU芯片仿真加速方法,其包括:S1:采用行为仿真模型与SimPoint结合摘取指定程序中权重较高部分的基本块向量,生成特征切片,其中,行为仿真模型为gem5;S2:修改行为仿真模型,并使用开发的指令和指令上下文跟踪功能再次运行行为仿真模型,在特征切片的开始执行阶段开始跟踪特征切片的执行,直到特征切片执行的结束;S3:在特征切片执行完成后,指令上下文跟踪功能根据跟踪结果生成一段切片汇编代码,得到指定程序切片;S4:利用目标测试系统上可执行的测试固件,执行得到的指定程序切片。执行得到的指定程序切片。执行得到的指定程序切片。

【技术实现步骤摘要】
生成可执行文件进行仿真切片恢复的CPU芯片仿真加速方法


[0001]本专利技术涉及CPU芯片仿真
,具体而言,涉及一种生成可执行文件进行仿真切片恢复的CPU芯片仿真加速方法,更具体地是通过生成可执行文件来实现仿真切片恢复的一种CPU芯片仿真加速方法。

技术介绍

[0002]切片仿真是常用的对CPU芯片进行验证的手段,如果CPU芯片能够无错执行切片,那么所生成的指令日志应该和生成的切片在模拟器上执行的指令日志一致,因此,切片仿真可以用于验证CPU的正确性。CPU芯片在验证的过程中,需要执行大量程序以验证其稳定性,因而芯片仿真执行是一个非常耗时的过程。
[0003]仿真切片通常是生成切片程序的执行上下文,其包括内存、磁盘、寄存器、缓存的快照等,并恢复到仿真模型中。当真实CPU芯片硬件没有被建模时,特别是乱序执行CPU模型缺失的时候,通过不同的仿真模型生成出来的快照无法恢复到真实的硬件模型中。
[0004]业内常采用如表1所列举的几种常见切片方法,比较每种方法的切片仿真应用场景和硬件CPU模型的关系如下:
[0005]表1:
[0006][0007][0008]因此,需要一种在普通模拟器环境生成切片,且切片后的程序能够在真实硬件环境中快速执行的方法,以达到缩短仿真的时间且无需耗费较大工作量的目的。

技术实现思路

[0009]为了解决上述问题,本专利技术提供一种生成可执行文件进行仿真切片恢复的CPU芯片仿真加速方法,其只需软件团队由普通模拟器生成切片并在真实硬件上执行,通过执行程序特征部分就可以起到执行该程序的验证效果,从而缩短了大量程序执行的仿真时间及工作量。
[0010]为达到上述目的,本专利技术提供了一种生成可执行文件进行仿真切片恢复的CPU芯
片仿真加速方法,其包括:
[0011]步骤S1:采用行为仿真模型与SimPoint结合摘取指定程序中权重较高部分的基本块向量,生成特征切片,其中,所述行为仿真模型为gem5;
[0012]步骤S2:修改行为仿真模型,并使用开发的指令和指令上下文跟踪功能再次运行行为仿真模型,在特征切片的开始执行阶段开始跟踪特征切片的执行,直到特征切片执行的结束;
[0013]步骤S3:在特征切片执行完成后,指令上下文跟踪功能根据跟踪结果生成一段切片汇编代码,得到指定程序切片;
[0014]步骤S4:利用目标测试系统上可执行的测试固件,执行得到的指定程序切片。
[0015]在本专利技术一实施例中,其中,步骤S1具体包括:
[0016]步骤S1.1:在运行行为仿真模型gem5的同时引入SimPoint切片功能,分析并提取权重最高的程序基本块向量,生成可被SimPoint使用的且用于分析权重的基本块向量侧写文件;
[0017]步骤S1.2:运行SimPoint分析基本块向量侧写文件,输出SimPoint权重分析结果文件;
[0018]步骤S1.3:再次执行行为仿真模型gem5,读入SimPoint权重结果文件中指定基本块向量侧写文件有较高权重的基本块向量,并生成模拟器能够重复执行的检查点快照,得到特征切片。
[0019]在本专利技术一实施例中,其中,步骤S2中的指令和指令上下文跟踪功能为一gem5模拟器的插件,当每次指定程序的指令被gem5模拟器的CPU执行时调用该插件,此时记录被执行的指令码和当时的模拟器内的内存与寄存器的状态。
[0020]在本专利技术一实施例中,其中,步骤S2中的跟踪功能包括对CPU寄存器、代码及数据的自动跟踪,其中数据还包括数据段、栈和堆,具体包括:
[0021]对CPU寄存器的跟踪只在特征切片的开始执行的时候,并记录所有上下文寄存器的信息;
[0022]对栈的跟踪是在特征切片的开始执行的时候,通过堆栈指针记录切片开始时候的堆栈信息;
[0023]对栈的跟踪还包括在特征切片的执行过程中,记录其帧信息;
[0024]对数据段和堆的跟踪是在特征切片的执行过程中,记录其第一次读取的被记录到内存地址中的内容;
[0025]对数据段和堆的跟踪还包括在特征切片执行完成后,合并第一次读取到的内存地址中的内容,并形成执行过程访问过的内存信息的离散列表;以及
[0026]对代码的跟踪是在特征切片的执行过程中,通过跟踪跳转/调用指令记录被执行的函数符号信息,所述函数符号信息包括目标函数的符号名称和首地址。
[0027]在本专利技术一实施例中,其中,步骤S3中的切片汇编代码的内容包括:
[0028]第一段为一段寄存器加载指令,以恢复CPU的上下文寄存器的过程;
[0029]第二段为一段被切片程序读写的内存,其包括堆或数据段,以建立虚拟内存映射的过程;
[0030]第三段为一段内存加载指令,以恢复目标内存地址内容的过程;
[0031]第四段为一段将所有被记录的函数符号信息以汇编函数的方式输出的代码段,其中函数符号信息中的符号是以符号名表示而不以地址表示;
[0032]第五段为一段将被记录的函数所调用的函数通过汇编函数的方式输出的代码段,其中函数的符号也是以符号名表示而不以地址表示;以及
[0033]第六段为一段栈恢复代码,具体为根据栈及帧信息修改堆栈指针获得栈及帧的空间,并将保存的帧内容存放到栈及帧的空间中。
[0034]在本专利技术一实施例中,其中,步骤S4具体包括:
[0035]步骤S4.1:为测试固件增加内存管理单元的支持,以使得测试固件在执行指定程序切片时有与操作系统执行指定程序时相似的地址空间环境;
[0036]步骤S4.2:将生成的切片汇编代码以一个切片入口函数的形式与目标测试系统所能够启动的测试固件链接到一起,成为一个可执行文件,其中,链接过程是将符号重新链接成新的地址的过程;
[0037]步骤S4.3:目标测试系统的CPU直接执行该可执行文件,其中,先运行目标测试系统测试固件自身的BSP部分,然后跳转到切片汇编代码入口,通过调用切片入口函数即能够再现指定程序切片的整个执行过程。
[0038]本专利技术提供的生成可执行文件进行仿真切片恢复的CPU芯片仿真加速方法,与现有技术相比,其无需花费硬件建模的庞大工作量,只需由普通模拟器生成切片即能在真实硬件上执行,并且对于执行程序而言,只需执行其特征部分就可以起到执行该程序的验证效果,从而缩短了大量程序执行所耗费的仿真时间。
附图说明
[0039]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040]图1为切割基本块的原理示意图;
[0041]图2为本专利技术一实施例的流程图。
具体实施方式
[0042]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种生成可执行文件进行仿真切片恢复的CPU芯片仿真加速方法,其特征在于,包括:步骤S1:采用行为仿真模型与SimPoint结合摘取指定程序中权重较高部分的基本块向量,生成特征切片,其中,所述行为仿真模型为gem5;步骤S2:修改行为仿真模型,并使用开发的指令和指令上下文跟踪功能再次运行行为仿真模型,在特征切片的开始执行阶段开始跟踪特征切片的执行,直到特征切片执行的结束;步骤S3:在特征切片执行完成后,指令上下文跟踪功能根据跟踪结果生成一段切片汇编代码,得到指定程序切片;步骤S4:利用目标测试系统上可执行的测试固件,执行得到的指定程序切片。2.根据权利要求1所述的生成可执行文件进行仿真切片恢复的CPU芯片仿真加速方法,其特征在于,步骤S1具体包括:步骤S1.1:在运行行为仿真模型gem5的同时引入SimPoint切片功能,分析并提取权重最高的程序基本块向量,生成可被SimPoint使用的且用于分析权重的基本块向量侧写文件;步骤S1.2:运行SimPoint分析基本块向量侧写文件,输出SimPoint权重分析结果文件;步骤S1.3:再次执行行为仿真模型gem5,读入SimPoint权重结果文件中指定基本块向量侧写文件有较高权重的基本块向量,并生成模拟器能够重复执行的检查点快照,得到特征切片。3.根据权利要求1所述的生成可执行文件进行仿真切片恢复的CPU芯片仿真加速方法,其特征在于,步骤S2中的指令和指令上下文跟踪功能为一gem5模拟器的插件,当每次指定程序的指令被gem5模拟器的CPU执行时调用该插件,此时记录被执行的指令码和当时的模拟器内的内存与寄存器的状态。4.根据权利要求1所述的生成可执行文件进行仿真切片恢复的CPU芯片仿真加速方法,其特征在于,步骤S2中的跟踪功能包括对CPU寄存器、代码及数据的自动跟踪,其中数据还包括数据段、栈和堆,具体包括:对CPU寄存器的跟踪只在特征切片的开始执行的时候,并记录所有上下文寄存器的信息;对栈的跟踪是在特征切片的开始执行的时候,通过堆栈指针记录切片开始时...

【专利技术属性】
技术研发人员:郑律姜志颖王飞范东睿
申请(专利权)人:苏州睿芯集成电路科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1