研读BOOM

今天又研读了一下BOOM核的代码, 确认了BOOM没做某些CSR读写的优化, 每次读写任意的CSR都是刷一遍流水线。具体而言, BOOM是在CSR读写指令执行时, 执行前等流水线清空, 执行后刷一遍流水线。非常恐怖。不过, 这样方便了CSR模块的实现, 由于此前流水线已经清空, 前面的指令不会再产生新的异常, 其只需要在ALU阶段直接读写即可, 不需要CSR寄存器重命名、数据转发等。

事实上, cyy此前的调研也发现, 其他的一些开源RISC-V核, 如平头哥、香山等, 也都是会刷一遍流水线。

发表评论

注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

本文链接:https://twd2.me/archives/17915QrCode