riscv-software-src / riscv-perf-model

Example RISC-V Out-of-Order/Superscalar Processor Performance Core and MSS Model
Apache License 2.0
117 stars 43 forks source link

1st commit of fusion capable decoder, json support #163

Closed jeffnye-gh closed 3 months ago

jeffnye-gh commented 3 months ago

fusion decoder implementation. This is suitable for analysis.

Adds fusion parameters to fusion.yaml. And specifies external file definition of fusion groups using JSON

New statistics for fused instructions and fusion group stats

HCache as separate structure in fusion/fusion

Includes the FSL.md domain language description

Inst.hpp modified to add FUSED and FUSION_GHOST status as extended status

Support for non-sequential program ID. Each instr has a PID increment value, and methods

Formatting, clean up of Inst.hpp

JSON support added to Fusion.hpp

New exceptions for JSON errors

Fusion default transform no longer modifies the input buffer

HCache testbench functions

arupc commented 3 months ago

This looks good to me. Please feel to merge this, unless Knute has any other comment.

This PR is a significant contribution. There may be opportunity for wider acceptance and use of this language, beyond this SIG and Olympia. After we merge this PR, would you be interested in doing a RISCV-style public review of the FSL.md document, as a means of gathering feedback outside of the SIG for future improvements?

jeffnye-gh commented 3 months ago

I have created the issue which captures the enhancements for composition and argument lists. #165

I can not do the merge, its requires Knute or other admin for the repo.

Re: "After we merge this PR, would you be interested in doing a RISCV-style public review of the FSL.md"

Sure, I would create a more or less standard BNF expression of the grammar based on this review feedback, and then public review would be good.