完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在e203_exu_commit.v中:assign cmt_instret_ena = cmt_ena & (~alu_brchmis_flush_req);
cmt_instret_ena的使能排除 branch(预测失败时)、fencei、mret和dret等指令造成流水线冲刷的情况。 根据文档,造成流水线冲刷的这些指令本身应该是交付的,但为什么计算提交指令数时要排除它们呢? 或许是我的理解有误,望各位老师和同学们指点一下,万分谢谢! |
|
相关推荐
1个回答
|
|
在RISC-V架构中,流水线冲刷是指当分支预测错误或发生异常时,流水线中的指令会被清除,并重新开始执行正确的指令序列。在这种情况下,被清除的指令不应该被计为已提交的指令,因此在计算提交指令数时需要排除这些指令。
具体来说,预测失败的分支指令会导致流水线冲刷,而且这些指令本身是被送达到提交单元进行处理的。但是在计算提交指令数时,我们关心的是真正成功提交到存储器的指令,而非发生冲刷的指令。因此,需要排除预测失败的分支指令等冲刷情况,只统计成功提交的指令个数。 而对于fencei、mret和dret等指令,它们在执行过程中不会对流水线产生冲刷影响,因此也不应该计入已提交的指令数中。 综上所述,cmt_instret_ena的使能排除了预测失败的分支指令、fencei、mret和dret等指令,以确保在计算提交指令数时只包括成功提交到存储器的指令。 |
|
|
|
只有小组成员才能发言,加入小组>>
在软件SDK中选择不同的下载模式时,是哪个部件更改了QSPI0中寄存器的值?
381 浏览 2 评论
cmt_instret_ena的使能为什么要排除branch等指令造成流水线冲刷的情况?
524 浏览 1 评论
e203 rom启动仅仅是引导到itcm执行指令吗?flash启动就是加载指令到itcm中吗?
546 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 22:01 , Processed in 0.600991 second(s), Total 102, Slave 84 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号