treewide: Schnova a reduced complexity out-of-order core - #19
Open
Stefan-Odermatt wants to merge 198 commits into
Open
treewide: Schnova a reduced complexity out-of-order core#19Stefan-Odermatt wants to merge 198 commits into
Stefan-Odermatt wants to merge 198 commits into
Conversation
… sends operand requests and the second handles incoming operand responses.
…changes the fetch data width and the second can be used to either use schnova or the schnizo core.
… module in schnova.
… busy (to avoid WAW hazards)
…pty only loads or stores or both of them.
…d added balanced version of them
…on register also enter the rob now.
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This branch contains all files used to develop, test, and evaluate the Schnova core.
Hardware
The hardware implementation is located in
hw/schnova. The top-level module is defined in theschnova.svSystemVerilog file.Key features of the core include:
Configurable instruction fetch width. The number of instructions fetched per cycle must be a power of two.
Configurable numbers of integer and floating-point physical registers.
Support for two physical-register release mechanisms:
Single-issue, in-order execution during normal operation.
Automatic transition to superscalar, out-of-order execution when an
frep.ohardware-loop instruction is fetched.Support for hardware loops in single-issue mode through the
frep.iinstruction.Configurable load-store units through a CSR, allowing each LSU to accept load instructions, store instructions, or both.
Testing
Software tests are located in
sw/tests. Most of the existing Schnizo tests were reused, and two additional tests were added to cover branches inside hardware loops.To run the complete test suite for a specific core configuration, use:
tests/schnova.yamlA tracer similar to the existing Schnizo tracer was also implemented.
Evaluation
The core was evaluated in terms of:
All evaluation scripts, configurations, and results are located in
experiments/schnova.