Contributing to FeS2
Our hope is that the people who find FeS2 useful will also help improve it. FeS2 is far from perfect, and there are several areas that would benefit from outside improvements. Several important ones are outlined below; if you plan to work on any of them please subscribe to the FeS2-devel mailing list and send out a message describing what you intend to work on. Currently we plan to accept contributions in the form of patches, but dedicated contributors will be granted commit privileges to the SVN repository.
- The FeS2 codebase is large and can be overwhelming. Once you know your way around, the code is modular and relatively easy to work with, but good documentation would make it easier to learn.
- Improve the configuration interface
- Currently, adding an option to the simulator involves adding a Simics attribute, which can both be tedious and repetitive (when adding multiple options to the same component, for example). Perhaps a better design would be reading in some structured (XML?) configuration file. We are open to suggestions.
- Timing model improvements
- There are a number of areas that could use help here. Some examples: FeS2 does not model an I-cache (Ruby includes one, but the processor model does not plug into it yet) and it does not model limits on structural resources such as functional units or the physical register file (although the size of the instruction window is modeled).
- HOWTO run benchmarks
- Contribute scripts and directions on how to simulate your favorite SPEC suite or other benchmark suites.
- Tests, tests and more tests
- As it stands, FeS2 has no testing framework. Yes, this is scary.