-
Notifications
You must be signed in to change notification settings - Fork 737
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(CSR): allow most CSRR can be out-of-order issued and executed
* Add some comment on rdata in NewCSR. * Allow CSRR not to block backward instruction. * Here is **Inorder** CSRR list, * fflags, fcsr, * vxsat, vcsr, vstart, * mstatus, sstatus, hstatus, vsstatus, mnstatus, * dcsr. * The reason for Inorder CSRR executed is that these CSR will be changed by Use-Level instruction without any fence, and executing OoO would get wrong result. * Since there must be FENCE before reading any PMC CSRs, there is no need to let reading PMC CSRs inorder.
- Loading branch information
1 parent
2df9c39
commit 075d493
Showing
10 changed files
with
50 additions
and
300 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
23 changes: 23 additions & 0 deletions
23
src/main/scala/xiangshan/backend/fu/NewCSR/CSROoORead.scala
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
package xiangshan.backend.fu.NewCSR | ||
|
||
import freechips.rocketchip.rocket.CSRs | ||
|
||
object CSROoORead { | ||
/** | ||
* "Read only" CSRs that can be fully pipelined when read in CSRR instruction. | ||
* Only read by csr instructions. | ||
*/ | ||
val inOrderCsrReadList = List( | ||
CSRs.fflags, | ||
CSRs.fcsr, | ||
CSRs.vxsat, | ||
CSRs.vcsr, | ||
CSRs.vstart, | ||
CSRs.sstatus, | ||
CSRs.vsstatus, | ||
CSRs.mstatus, | ||
CSRs.hstatus, | ||
CSRs.mnstatus, | ||
CSRs.dcsr, | ||
) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.