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:Knute Lingaard <knute.lingaard@sifive.com> Co-authored-by:
Zhen Wei <zhen.wei@sifive.com>
parent
3849e35c
Please register or sign in to comment