misc: SystemC Elastic Trace Player Example
Review Request #3477 - Created May 25, 2016 and submitted
| Information | |
|---|---|
| Matthias Jung | |
| gem5 | |
| Reviewers | |
| Default | |
| andysan | |
This patch adds an example configuration for elastic trace playing into the
SystemC world, similar to the already existing traffic generator example in
/util/tlm.
Summary: |
|
|---|
-
util/tlm/tlm_elastic.py (Diff revision 1) -
*2016.
-
util/tlm/tlm_elastic.py (Diff revision 1) -
*instantiated
-
util/tlm/tlm_elastic.py (Diff revision 1) -
CPU should be connected to L1 caches instead of membus. I think it would be best to call the CacheConfig.config_caches(options, system) here to incorporate all common options related to caches.
Hi Matthias, thanks for integrating the elastic trace cpu system into the systemC 'world' :) Please address the few comments I have.
-
util/tlm/tlm_elastic.py (Diff revision 1) -
Is this really needed? You've already asserted that the CPU type must be the trace CPU. I think you should just hardcode the CPU class below.
Change Summary:
Dear Radhika and Jason,
Thank you very much for your comments and suggestions. I resolved all issues!Finally, I decided to include the caches, since it is only one line of code and the system can be directly used as an entry point for simulations with e.g. DRAMSys.
Regards
Matthias
Diff: |
Revision 2 (+184) |
|---|
Ship It!
Ship It!
Ship It!
People: |
|
|---|
Thanks for your patch!
I think this config script is independant enough that you should consider not using the Options helper in configs/common. I would argue that it just creates confusion due to the large number of unused options. I would suggest that you make it as independent as possible of the functionality in config/common/ and make it completely stand alone instead. However, don't consider these comments to be blockers for submission, they are just nice-to-have improvements.
-
util/tlm/tlm_elastic.py (Diff revision 2) -
I'd suggest not using any of these components. You'll just end up creating a gazillion of options that you'll never use in the end.
-
util/tlm/tlm_elastic.py (Diff revision 2) -
You already force options.cpu_type to 'trace', which means that you statically already know that your CPU will be the TraceCPU and the memory mode will be timing.
-
util/tlm/tlm_elastic.py (Diff revision 2) -
You shouldn't need to care about this for the trace cpu.
-
util/tlm/tlm_elastic.py (Diff revision 2) -
cpu=TraceCPU(cpu_id=0),
mem_mode='timing', -
util/tlm/tlm_elastic.py (Diff revision 2) -
This shouldn't be needed since you're not in FS mode (and you're simulating a trace CPU).
Change Summary:
Thank you for your feedback!
I revised the patch again and included all the changes of Andreas S.
It is now a very simple example which doesn't uses the option calss at all.
Diff: |
Revision 3 (+153) |
|---|
LGTM. Minor nit below. Thanks for the revision!
-
util/tlm/tlm_elastic.py (Diff revision 3) -
This seems redundant
Ship It!
Much cleaner! Thanks for making the changes.
