Summary

Software prefetching can be a useful way to reduce memory request latency in programs. However, not many prefetching protocols today take into account the cache coherency protocols, which may affect the effectiveness of prefetching. Due to this fact, we are planning on using a gem5 simulator to determine the performance of prefetching pragmas with different combinations of cache coherence protocols. As a reach goal, we plan on developing a machine learning algorithm to further increase the performance benefits of prefetching on different coherency protocols.

Update Summary

After a meeting with Professor Mowry, we realized that the direction that our current project was going in was not within the scope of the course and could not reasonably accomplished given the time constraints. We have pivoted our approach to be focused now on prefetching with different coherence protocols since those are the topics covered in class.
The new approach we have been taking is cache simulation done in gem5 where we can insert certain prefetching pragmas and look at the gem5 simulator to see when these prefetching techniques would be worth the overhead. The gem5 allows for us to look at performance along with miss cache counters and we can see when a prefetch would be optimal, along with which cache coherency protocol to use, MESI or MOESI.