Gem5-Users, Apologies if this is a silly question or one that has been asked many times before. I've done some quick google searches and haven't found anything yet.
I'm a new user to Gem5, and I have gone through a good portion of the tutorial to where I can create various caches with various configurations, memory systems, etc., and connect them all together. So, it seems like, from creating a Python configuration file alone, I would be able to string together something reasonable for describing different RISCV system architectures. This is all good. Perhaps I am naïve, but it seems like the only important thing I'm missing from the base package and what I've learned from the tutorial is where to get specific CPU core implementations / models. For example, when I look at a list from the built-in "se.py" script, there are only a few specific CPU models provided by Gem5: prompt> riscv-gem5 ./configs/example/se.py --list-cpu-types gem5 Simulator System. https://www.gem5.org gem5 is copyrighted software; use the --copyright option for details. gem5 version 22.1.0.0 gem5 compiled Jun 24 2023 11:18:42 gem5 started Jun 25 2023 08:54:33 gem5 executing on lvablnode16, pid 96252 command line: riscv-gem5 /dept/Boston/avose/riscv/tools/source/gem5/configs/example/se.py --list-cpu-types Available BaseCPU classes: AtomicSimpleCPU Simple CPU model executing a configurable number of instructions per cycle. This model uses the simplified 'atomic' memory mode. BaseAtomicSimpleCPU Simple CPU model executing a configurable number of instructions per cycle. This model uses the simplified 'atomic' memory mode. BaseMinorCPU BaseNonCachingSimpleCPU Simple CPU model based on the atomic CPU. Unlike the atomic CPU, this model causes the memory system to bypass caches and is therefore slightly faster in some cases. However, its main purpose is as a substitute for hardware virtualized CPUs when stress-testing the memory system. BaseO3CPU BaseTimingSimpleCPU DerivO3CPU MinorCPU NonCachingSimpleCPU Simple CPU model based on the atomic CPU. Unlike the atomic CPU, this model causes the memory system to bypass caches and is therefore slightly faster in some cases. However, its main purpose is as a substitute for hardware virtualized CPUs when stress-testing the memory system. O3CPU RiscvAtomicSimpleCPU Simple CPU model executing a configurable number of instructions per cycle. This model uses the simplified 'atomic' memory mode. RiscvMinorCPU RiscvNonCachingSimpleCPU Simple CPU model based on the atomic CPU. Unlike the atomic CPU, this model causes the memory system to bypass caches and is therefore slightly faster in some cases. However, its main purpose is as a substitute for hardware virtualized CPUs when stress-testing the memory system. RiscvO3CPU RiscvTimingSimpleCPU TimingSimpleCPU I guess I'm wondering how people manage to get a RISC-V "Rocket" or a "Boom" core to be used in place of these available built-in CPU types. Is the idea that one would write the models for the different RISC-V CPUs themselves using the Python / C++ interface, or are there existing core models made available somewhere that people like me could directly use instead? Or, perhaps, are the above CPU core models parameterized sufficiently that they can be made to look something like a "Rocket" or a "Boom v3" core? I will continue to read through the documentation and tutorials. I was just hoping someone might be able to point me in the right direction. Thanks much, ~Aaron Vose
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org