Dear gem5 community,
I am writing to inquire about configuring cache coherence protocols in Ruby
with HeteroGarnet for research purposes.
As I am relatively new to this area, I appreciate your patience and
guidance.
I am currently exploring the implementation of a three-level cache
hierarchy using the MESI_three_level protocol within a Network-on-Chip
(NoC) environment. My objective is to evaluate memory access latency as a
performance metric.
My understanding, based on initial research, is that the MESI_three_level
protocol utilizes three cache levels: L0, L1, and L2. L0 and L1 are private
caches, with L0 further divided into separate instruction (L0I) and data
(L0D) caches. The L2 cache, on the other hand, is shared among all cores in
the network.
One aspect that I find intriguing is that while the MESI_three_level
protocol employs cluster grouping, the L2 cache appears to be globally
shared. Could you please confirm if this interpretation is accurate?

To further my exploration, I have a few specific questions:

   1. Why are L0, L1, and L2 chosen over a more traditional L1, L2, and L3
   hierarchy?
   2. To incorporate additional cache levels, which specific configuration
   files should I modify? I have reviewed "configs/ruby/MESI_Three_Level.py",
   "configs/common/Caches.py", and "configs/common/CacheConfig.py", but
   require further guidance on the necessary modifications.
   3. Can you elaborate on the purpose of the "version" property within the
   L2Cache_Controller class?

[image: image.png]

4. Does gem5 support simulating cache coherence protocols with additional
levels like L4 or L5 in the hierarchy?


Thank you for your time and assistance. I look forward to learning more
about this topic.

Best Regards,
*Eng. Karim Soliman*
Teaching Assistant
Computer Engineering Department
Pharos University in Alexandria (P.U.A)
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to