View on GitHub

Simulating Snooping Based Cache Coherence Protocols

Vishnu Razdan vrazdan

Don Zheng zhaodonz

What we have done so far

By this point in our schedule, we were supposed to have been midway in implementing our simulator for the MSI protocol. Secondly, we were supposed to be able to Pin programs and parse the resulting data into a useful input file for the simulator to trace. Finally, we were supposed to have a general system diagram of the components of our simulator and work out how they are supposed to interact with one another.

At this point, we have not yet begun coding our simulator. We ran into difficulty when specifically defining the components and capabilities of our system. However, now we do have a system diagram and understand exactly what the components of our system will be. Additionally, we know what changes will need to be made to incorporate non-atomic bus transactions and even a write-back buffer.

We have been able to run Pin on programs of our choosing and generate a memory trace file. We modified the Pintool that was made last year by Yuyang Guo and Isaac Lim , as there is no point completely redoing their work and the memory trace is not integral to the cache simulator. The trace file now outputs whether an instruction was a read or a write, the memory address being accessed, and the processor id. As we discovered, memory traces for simple programs can be hundreds of megabytes, and by using the group's code from last year, we now have only the more essential memory accesses.

Revised Schedule

This schedule has us finishing our deliverables by May 7th, with extra time allocated to account for unexpected bugs or problems. Ideally, with this schedule we will be able to complete our goal of implementing the Dragon Protocol by May 11th.

How we're doing

We are currently a little behind schedule with respect to our goals and deliverables. We will no longer be trying to complete a directory based cache coherence protocol for our simulator, nor writing our own custom graphics program to run on our simulator, as we now realize those were too ambitious. We will still be able to meet all of our original deliverables. Our schedule, barring unexpected complications, will allow us to complete our goal of implementing the Dragon protocol.

Our updated goal is just to implement the Dragon coherence protocol.

What we plan to show

We plan to show our graphs comparing the performance of the various protocols. We will highlight the differences that emerge when using a write-back buffer with and without non-atomic bus transactions as well.

Concerns

Our concerns at this point are mainly being able to implement all of our deliverables, which is just an issue of us coding and doing the work well.