Presented in no particular order, below are some additional features that will extend and enhance the simulator. (Once-future features that have already been implemented have been struck through.)
- superscalar out-of-order pipeline implementation (code name: Yuzu)
- retool per-core execution to leverage Python's
threading
module - per-core cycle count
- cache snooping
- pipeline implementation with value prediction
- perfect branch predictor
- perfect value predictor
- return address stack
- implement new eviction policies (e.g., least frequently used) for SimpleCache and SimpleBTB
- Kubernetes deployment
- ARM instruction set support
- MIPS instruction set support
- x86_64 instruction set support
- SPARC v9 instruction set support
"component'ized" Tangelo reimplementation (code name: Tangerine)"component'ized" Bergamot reimplementation (code name: Etrog)MMU serviceshared cachesacceleratedmmap
-based main memory implementationsample Jupyter Notebook for fetching and processing data from MongoDBpipeline implementation with decoupled fetch enginemulti-core support with cache sharingsyscall proxyinglaunch from binary's_start
label rather thanmain
labeltool for cataloging, indexing, and retrieving simulator runs
That said, since this is a toolkit intended to facilitate microarchitecture research, some of these, as my math textbooks used to say, "will be left as an exercise" for researchers.