Category: Simulators

  • gem5 standard library overview

    The gem5 standard library, introduced in v21.1 and fully released in v21.2, aims to enhance gem5 users’ productivity by providing commonly used components and features. Tutorials are available to help users utilize the library for creating gem5 simulations, including syscall emulation and full-system simulations. The library offers modularity and extensibility. The central component of the…

  • VNET vs VC in gem5 Garnet NoC

    When one is first introduced in Garnet NoC, he might find confusing the terms VNET and VC. A simple explanation follows. VNET (Virtual Network) can be considered a separate physical channel which carries a specific type of messages. More specifically, VNET is directly related with the Cache Coherence protocol that is used by the user.…

  • Modeling ARM Cortex-A76 in gem5

    One can model ARM Cortex processors (e.g. Cortex-A53, Cortex-A76, Cortex-A77) in gem5 by extending the detailed Out of Order (O3) processor model. This can be done in two simple steps. First one needs to adjust “gem5/src/cpu/o3/BaseO3CPU.py“, in order to set the various CPU parameters like fetchWidth, decodeWidth, issueWidth, LQEntries, SQEntries etc., according to the desired…

  • gem5 news – Oct 2023

    gem5 has recently moved it’s main development infrastructure from googlesource.com to github. Additionally, the gem5 developers abandoned the gerrit code review framework, in favor of the github “pull requests”. Very recently, a slack space has been created for the users of gem5. Last but not least, gem5 devs have recently posted results from benchmarking linkers.…

  • Why is gem5 still single threaded?

    gem5 simulator is not inherently multithreaded for several reasons: It’s important to note that while the core Gem5 simulator is primarily single-threaded, researchers and developers can leverage distributed computing techniques and parallel execution to run multiple Gem5 instances in parallel, simulating multiple cores or systems concurrently. This approach can achieve some level of parallelism while…