stdlib,mem-ruby: CHI support in components

This changeset adds CHI support in the components library. Currently,
only a very simple one level protocol is implemented, but hopefully this
design will be able to scale to other more complex hierarchies.

I've tested this with RISC-V with 1 and 4 cores and with x86 with 1
core. Since we don't have an Arm-compatible board, I haven't tested with
ARM. Note that x86 with more than 1 core boots most of the way, but it
hangs during systemd (the kernel comes up completely).

Change-Id: I56953238c6b0ca5ac754b103a1b6ec05a85a0af5
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/52463
Reviewed-by: Tiago Mück <tiago.muck@arm.com>
Reviewed-by: Bobby R. Bruce <bbruce@ucdavis.edu>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Jason Lowe-Power
2021-10-21 23:24:57 +00:00
committed by Jason Lowe-Power
parent 549431390f
commit e2b95722af
9 changed files with 734 additions and 0 deletions

View File

@@ -50,6 +50,22 @@ PySource('gem5.components.cachehierarchies',
'gem5/components/cachehierarchies/abstract_cache_hierarchy.py')
PySource('gem5.components.cachehierarchies',
'gem5/components/cachehierarchies/abstract_two_level_cache_hierarchy.py')
PySource('gem5.components.cachehierarchies.chi',
'gem5/components/cachehierarchies/chi/__init__.py')
PySource('gem5.components.cachehierarchies.chi',
'gem5/components/cachehierarchies/chi/private_l1_cache_hierarchy.py')
PySource('gem5.components.cachehierarchies.chi.nodes',
'gem5/components/cachehierarchies/chi/nodes/__init__.py')
PySource('gem5.components.cachehierarchies.chi.nodes',
'gem5/components/cachehierarchies/chi/nodes/abstract_node.py')
PySource('gem5.components.cachehierarchies.chi.nodes',
'gem5/components/cachehierarchies/chi/nodes/directory.py')
PySource('gem5.components.cachehierarchies.chi.nodes',
'gem5/components/cachehierarchies/chi/nodes/dma_requestor.py')
PySource('gem5.components.cachehierarchies.chi.nodes',
'gem5/components/cachehierarchies/chi/nodes/private_l1_moesi_cache.py')
PySource('gem5.components.cachehierarchies.chi.nodes',
'gem5/components/cachehierarchies/chi/nodes/memory_controller.py')
PySource('gem5.components.cachehierarchies.classic',
'gem5/components/cachehierarchies/classic/__init__.py')
PySource('gem5.components.cachehierarchies.classic',