[发明专利]指令流一致性测试方法在审
申请号: | 202110453215.9 | 申请日: | 2021-04-26 |
公开(公告)号: | CN114218065A | 公开(公告)日: | 2022-03-22 |
发明(设计)人: | 刘鑫;王丽一;陈德训;谭坚;胡夏晖;陈明津 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214038 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 指令 一致性 测试 方法 | ||
本发明公开一种指令流一致性测试方法,S1、初始化各项参数;S2、读入命令行参数;S3、设置共享空间的大小,申请共享的可执行空间;S4、Fork进程,并将进程绑定在不同核心上;S5、进入指令Cache测试入口模块,初始化由随机数组成的数组,并添加前缀指令;S6、进入自动测试模块;S7、进入执行指令模块;S8、执行指令模块运行结束,并进入结束测试模块;S9、在结束测试模块中,判断是否超过设定的执行遍数,如果超过,则进行结果校验,如果没超过,则再次进入自动测试模块;S10、结束测试后,汇报测试结果并回收进程,然后退出并结束。本发明解决了指令Cache一致性验证困难的问题。
技术领域
本发明涉及一种指令流一致性测试方法,属于国产处理器的功能正确性验证领域。
背景技术
同一个CPU上以及不同CPU上,一部分核心装填指令、另一些核心执行所装填的指令时会产生指令流的一致性,这在JAVA解释执行的场景下会经常发生,在芯片设计阶段,由于模拟仿真环境的速度很慢,使用JAVA程序来验证指令流的一致性不仅效率低下,而且查错困难。在Cache一致性验证中,常见的是对数据Cache的一致性验证,少见对指令Cache的一致性验证。目前CPU的核数不断增多,指令Cache的验证工作也不可或缺。
发明内容
本发明的目的是提供一种指令流一致性测试方法,以解决指令Cache一致性验证困难的问题。
为达到上述目的,本发明采用的技术方案是:提供一种指令流一致性测试方法,包括以下步骤:
S1、初始化各项参数,所述参数包括总的执行遍数、校验次数、校验失败次数、全局变量的初始值,在以下步骤中对各项参数进行更改并赋新值;
S2、读入命令行参数,包括CPU数、每个CPU的核的位图;
S3、设置共享空间的大小,申请共享的可执行空间;
S4、Fork进程,并将进程绑定在不同核心上;
S5、进入指令Cache测试入口模块,初始化由随机数组成的数组,并添加前缀指令;
S6、进入自动测试模块,首先初始化寄存器区域和内存区域,然后根据指令模板装填随机指令序列到可执行空间,装填完随机指令序列之后,跳转到执行指令模块;
S7、进入执行指令模块,首先加载整型寄存器、浮点寄存器和浮点控制寄存器的值,然后执行所装填的随机指令序列;
将随机指令序列的最后几条指令装填为返回指令,使得随机指令序列执行完毕后,返回到执行指令模块;
S8、执行指令模块运行结束,返回自动测试模块,然后返回到指令Cache测试入口模块,并进入结束测试模块;
S9、在结束测试模块中,判断自动测试遍数是否超过设定的执行遍数,如果超过,则进行结果校验,如果没超过,则再次进入自动测试模块;
S10、结束测试后,汇报测试结果并回收进程,然后退出并结束。
上述技术方案中进一步改进的方案如下:
1. 上述方案中,S9中通过将各个核心执行后的共享空间中的值与寄存器值进行比较,进行结果校验。
2. 上述方案中,S6中,指令的装填方式包括:偶数进程装填,所有进程一起执行;奇数进程装填,偶数进程执行;某些进程装填,所有进程一起执行;一半进程装填,一半进程执行。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明设计了一种指令流一致性测试的框架,通过构建指令流一致性验证的模型,支持多种指令块装填的方式,灵活控制指令流一致性测试的场景,能在流片前增强指令流一致性的验证,确保芯片功能的正确性。
附图说明
附图1为本发明一种指令流一致性测试方法的示意图。
具体实施方式
实施例:本发明提供一种指令流一致性测试方法,具体包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110453215.9/2.html,转载请声明来源钻瓜专利网。