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