Unverified Commit bfa49bda authored by Knute Lingaard's avatar Knute Lingaard Committed by GitHub
Browse files

Issue #5: Dynamic Execution Topologies (#18)



In this PR, Execute is now it's own node and dynamically creates
execution pipes based on extensions listed in the
config files:
```
top.cpu.core0.extension.core_extensions:
  execution_topology:
  [["alu", "6"],
   ["fpu", "2"],
   ["br",  "2"]]
```

Work done;
- Added new class `Dispatcher` that is dynamically created by `Dispatch`
for each execution pipe defined in the `execution_topology` extension
- Added new class `Execute` that is a node created for the sole purpose
of dynamically creating the `ExecutePipe` objects based on the
`execution_topology` extension
- Cleaned up old code
- Reduced the `CPUTopology` structure to just static components like
Fetch, Decode, Rename, Dispatch, Execute, LS/etc, and Retire
- Updated the arches to include a small, medium, and big core. Dhrystone
trace improves with each architecture, but is limited by LS.

Signed-off-by: default avatarKnute Lingaard <knute.lingaard@sifive.com>
Co-authored-by: default avatarZhen Wei <zhen.wei@sifive.com>
parent 3849e35c
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment