Snoopy Cache Coherence Assignment

Write a software simulator of an invalidate snoopy cache coherence protocol for a centralized shared memory multiprocessor with the following features:

1. 4 CPU nodes, each with private L1 data cache.

2. Cache organization: 64KBytes total capacity, 2-way set associative, 64-byte block size, 32-bit address space, uses MSI invalidate protocol described in class lecture.

3. Do not model data. Only address/tag and coherency state and bus transaction type.

4. Use OpenMP to develop your code.

5. Use one OpenMP thread for each CPU cache.

6. You do not need to model the DRAM since you are not modeling data, but only addresses and cache coherence state.

7. Simulator processes one miss at a time from start until completion.

8. Use a parallel for with an induction variable clk_count that increments on every loop iteration from a value of 1 until some very large value max_simulation_clk, large enough to complete processing all the input stimulus files posted with this assignment n Moodle.

9. Use a shared data object to represent centralized bus state. Bus state changes every clock, based on simulated cache misses and resulting cache coherent bus transactions.

10. Use a decentralized round robin priority/arbitration scheme to determine which cache can drive the bus (i.e., which cache can write the bus shared object on any given clock). Decentralized means every cpu observes its own request and requests from other cpus that want to drive the bus. They all determine in parallel the highest priority cpu that is making a request and that cpu wins priority to drive the bus. When a cpu wins the bus, it's priority is reduced to be the lowest priority cpu in the next arbitration cycle.

11. Use a synchronization barrier to make sure that every thread/cpu has already computed and driven it's request before all cpus proceed to compute the winner and the winner drives the bus.

Skills: C Programming, C++ Programming

See more: assignment write a blog post titled x tips for successful jaw surgery recovery x is the number of tips you end up with, assignment write business plan, write short story based words, assignment write feasibility report recommendation, fmd processing home based data entry typing, write summary findings based spss tables, write paper interview based research, order processing web based, write srs web based project, write online turn based game, open source sound processing web based, assignment write application calculate cost renting dvd, write quick web based sql database application, write oracle query based day, write simple text based game code

About the Employer:
( 0 reviews ) Lebanon

Project ID: #15418351

6 freelancers are bidding on average $41/hour for this job


i have experience with cache memory implementation. so i am sure that i ll be able to do it. we can have a chat. thanks

$39 USD / hour
(272 Reviews)

Hi. I am a CPU performance modelling engineer, I am building C++ cycle accurate models in my day to day job and I have a PhD in CPU architectures. I believe I can help you on this project.

$41 USD / hour
(18 Reviews)

Hi, I can start work on your project immediately once you confirm me and i am also open for further discussion if you want. I have 7+ years in web designing & development with good experience in following skills More

$40 USD / hour
(0 Reviews)

Hello I have gone through your project description I am highly expert & well experienced in it & can do it very well. I have 10years of experience & have completed 500+ projects. My expertise skills are:- C Progra More

$41 USD / hour
(0 Reviews)
$41 USD / hour
(0 Reviews)

Dear Employer! Our team consist of highly experienced developers, who can bring your project to the final. We are new at the, but we have a lot of successful projects at other freelance platforms (e.g. More

$41 USD / hour
(0 Reviews)