config: Support full-system with SST's memory system
Review Request #2668 - Created Feb. 20, 2015 and submitted
| Information | |
|---|---|
| Curtis Dunham | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
Changeset 10709:a3b771cd744c --------------------------- config: Support full-system with SST's memory system This patch adds an example configuration in ext/sst/tests/ that allows an SST/gem5 instance to simulate a 4-core AArch64 system with SST's memHierarchy components providing all the caches and memories.
Posted (Feb. 25, 2015, 8:32 a.m.)
Took me longer to review this just because I'm not sure what to think of it. It's not pretty, but I don't have better ideas, so it's hard to object. One thing that bothers me is that, while it's noble to try and generalize things, despite the generic-sounding "--external-memory-system" switch, many of the low-level details seem very sst-specific (like 'port_type="sst"' as an obvious one). Would it be more appropriate just to call the option "--sst-memory"? Also, the ExternalCache thing looks like it should be a subclass, even though it's just a function. I can see how the function is more convenient, but making it a subclass would allow some better encapsulation of the cpu_side __getattr__/__setattr__ hack. These are just general thoughts though... I'm very interested in others' input.
-
configs/common/CacheConfig.py (Diff revision 1) -
This seems obviously specific to sst here
-
configs/common/CacheConfig.py (Diff revision 1) -
I assume this naming is also specific to sst
-
src/mem/ExternalSlave.py (Diff revision 1) -
To me, this clearly straddles the line between "clever" and "horrifying" :). If nothing else, it would be nice to put these in an ExternalCache subclass.
Posted (March 27, 2015, 11:28 a.m.)
Looks much nicer. Thanks for the changes! Sorry for the long wait for the review.
Nothing big, just could use a couple more comments I think.
-
configs/common/CacheConfig.py (Diff revision 5) -
a comment explaining the need/purpose for this class would be nice
-
configs/common/CacheConfig.py (Diff revision 5) -
please add a comment here explaining that there is an assumption being made on how the external memory system names its ports
-
ext/sst/tests/test6_arm_4c.py (Diff revision 5) -
so does this require you to edit the file to replace "/XXX/abs-path-to"? couldn't this path be read from an environment variable, or perhaps you could leave it as a relative path so it would work if you ran from the "gem5" directory?
Ship It!
