The invention provides a method for branch prediction and speculative execution of branch instructions in the processor function verification method, including: S1: initialization driving and monitoring information; S2: if the processor initiated fetch request, if the implementation of S3, otherwise, S2; S3: empty the fetch pipeline signal is valid, if the termination of this operation, return S2, otherwise, S4; S4: a fetch pipeline is valid, if the signal is, the implementation of S4, otherwise, S5; S5: fetch cache logic simulation processor, random access instruction will drive to fetch logic interface on the processor, in order to eliminate the coupling relationship between instructions and procedures counter, the corresponding fetch signal into a valid state; S6: in the fetch signal effectively, the information package and send instructions. The invention fully verifies the branch instruction and branch prediction function of the execution processor, and greatly improves the utilization and test efficiency of the random instruction.
【技术实现步骤摘要】
推测执行处理器中分支指令与分支预测功能的验证方法
本专利技术涉及处理器分支预测
,特别涉及一种推测执行处理器中分支指令与分支预测功能的验证方法。
技术介绍
分支预测可以左右处理器的性能,一个准确度高的分支预测器是提高处理器性能的关键部件。因此,对于推测执行处理器,分支指令以及分支预测功能的验证也越来越重要。在现有技术下,分支指令以及分支预测功能的验证工作主要是在处理器级的验证环境中进行的。处理器验证环境中主要包含待测处理器、参考模型和计分板。在处理器验证环境中,指令与数据存储在同一个存储器中,处理器根据程序计数器去存储器中取到对应的指令,然后供处理器执行。推测执行处理器指令的执行过程可分为取指(fetch)、译码(decode)、发射(issue)、执行(excute)、写回(write_back)和提交(commit)六个步骤。首先,处理器根据程序计数器通过缓存单元从存储器中获取将要执行的指令,将该指令被传递到译码阶段。当处理器在译码阶段翻译到该指令为分支类指令时,首先会根据分支预测算法来预测分支是否发生,然后根据预测结果的地址,通过缓存单元去存储器中预取指令。该分支指令之后顺次进入发射、执行与写回阶段,并在写回阶段校验该分支指令在译码阶段的预测结果是否正确。如果分支预测正确,则继续执行;如果分支预测错误,则需要将错误预取到的指令清空,并去正确的地址重新取指。因此,推测执行处理器在取指阶段总是根据自身猜测的结果去取指令,在指令的写回阶段对指令进行检查与纠正,以保证处理器最终按正确的程序流执行指令。而在处理器验证环境中,由于参考模型是抽象建模,其并不 ...
【技术保护点】
一种推测执行处理器中分支指令与分支预测功能的验证方法,其特征在于,包括:待测处理器取指逻辑代理过程,包括以下步骤:S1:初始化取指逻辑代理下的驱动及监控信息;S2:判断所述待测处理器是否发起取指申请,如果是,则执行步骤S3,否则,继续执行所述S2,直至所述待测处理器发起取指申请;S3:判断所述待测处理器清空取指流水线信号是否有效,如果有效,则终止本次操作,并返回执行所述S2,以等待下一次取指申请,否则,执行步骤S4;S4:判断所述待测处理器停顿取指流水线信号是否有效,如果有效,则继续执行所述S4,直至所述停顿取指流水线信号无效,否则,执行步骤S5;S5:从所述取指逻辑代理中获取随机指令,模拟所述待测处理器的取指缓存逻辑,并将获取到的所述随机指令直接驱动到所述待测处理器的取指逻辑接口上,以消除指令与程序计数器之间的耦合关系,并将取指逻辑接口对应的取指信号设置为有效状态;S6:所述取指逻辑代理下的监控模块监控所述取指逻辑接口对应的取指信号,并在所述取指信号有效时,将对应的指令信息打包,并发送出所述取指逻辑代理。
【技术特征摘要】
1.一种推测执行处理器中分支指令与分支预测功能的验证方法,其特征在于,包括:待测处理器取指逻辑代理过程,包括以下步骤:S1:初始化取指逻辑代理下的驱动及监控信息;S2:判断所述待测处理器是否发起取指申请,如果是,则执行步骤S3,否则,继续执行所述S2,直至所述待测处理器发起取指申请;S3:判断所述待测处理器清空取指流水线信号是否有效,如果有效,则终止本次操作,并返回执行所述S2,以等待下一次取指申请,否则,执行步骤S4;S4:判断所述待测处理器停顿取指流水线信号是否有效,如果有效,则继续执行所述S4,直至所述停顿取指流水线信号无效,否则,执行步骤S5;S5:从所述取指逻辑代理中获取随机指令,模拟所述待测处理器的取指缓存逻辑,并将获取到的所述随机指令直接驱动到所述待测处理器的取指逻辑接口上,以消除指令与程序计数器之间的耦合关系,并将取指逻辑接口对应的取指信号设置为有效状态;S6:所述取指逻辑代理下的监控模块监控所述取指逻辑接口对应的取指信号,并在所述取指信号有效时,将对应的指令信息打包,并发送出所述取指逻辑代理。2.根据权利要求1所述的推测执行处理器中分支指令与分支预测功能的验证方法,还包括:添加用于缓存指令的UVM功能部件的过程,包括以下步骤:S10:初始化指令缓存队列;S20:检测接收待测处理器取指逻辑代理下的监控模块是否发出打包的指令信息,如果是,则执行步骤S30,否则执行步骤S40;S30:将所述指令信息存放入先进先出队列fifo中;S40:检测待测处理器是否提交指令,如果是,则执行步骤S50,否则执行步骤S60;S50:根据所述待测处理器一次提交的指令数,从所述先进先出队列fifo中取出与所述指令数相同数量的指令发送给参考模型;S60:判断是否存在清空取指流水线的操作,如果存在,则执行步骤S70,否则,返回执行步骤S20;S70:判断本次清空取指流水线的操作是否为分支预测错误导致的,如果是,则执行步骤S80,否则执行步骤S90;S80:将所述先进先出队列fifo部分清空,并返回执行所述S...
【专利技术属性】
技术研发人员:商家玮,王梦觉,
申请(专利权)人:北京国睿中数科技股份有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。