Cache Simulator Project Note: This project has three mini-projects on it. Give yourself enough time to work on each of them. I am not enforcing a deadline for each part. I giving you the liberty of...

trace driven cache simulator project


Cache Simulator Project Note: This project has three mini-projects on it. Give yourself enough time to work on each of them. I am not enforcing a deadline for each part. I giving you the liberty of choosing when do you submit as long as you submit by the December 1st deadline. Yet, I want to see the progression of your work in the report. mini-Project 1 (Links to an external site.) - http://www.cs.umd.edu/class/spring2012/cmsc411/p1 (Links to an external site.) Basic Cache Simulator Project description • You will need to implement a trace-driven cache simulator and use it to evaluate the performance of different cache architecture features. Grading Policy: Your code will be run against the provided public test cases given to you and against a set of test cases that are hidden from you. Your grade will be according to how did your code do with the test cases both the public and private/hidden. The project is described in detail in sim.pdf (Links to an external site.). Getting Started Download the following archive file p1.zip (Links to an external site.) and extract its contents. You will find the following project files: • cache.h (Links to an external site.) - cache simulator definitions • cache.c (Links to an external site.) - cache simulator (put all your edits here) • main.h (Links to an external site.) - simulation driver definitions • main.c (Links to an external site.) - simulation driver • Public tests o public-block.trace (Links to an external site.) - test cache block sizes o public-assoc.trace (Links to an external site.) - test cache associativity o public-write.trace (Links to an external site.) - test cache write policy o public-instr.trace (Links to an external site.) - test instruction cache o spice10.trace (Links to an external site.) - 1st 10 accesses in spice.trace o spice100.trace (Links to an external site.) - 1st 100 accesses in spice.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1 http://www.cs.umd.edu/class/spring2012/cmsc411/p1 http://www.cs.umd.edu/class/spring2012/cmsc411/p1 http://www.cs.umd.edu/class/spring2012/cmsc411/p1 http://www.cs.umd.edu/class/spring2012/cmsc411/p1 http://www.cs.umd.edu/class/spring2012/cmsc411/p1 http://www.cs.umd.edu/class/spring2012/cmsc411/p1 http://www.cs.umd.edu/class/spring2012/cmsc411/p1 http://www.cs.umd.edu/class/spring2012/cmsc411/p1/sim.pdf http://www.cs.umd.edu/class/spring2012/cmsc411/p1/sim.pdf http://www.cs.umd.edu/class/spring2012/cmsc411/p1/p1.zip http://www.cs.umd.edu/class/spring2012/cmsc411/p1/p1.zip http://www.cs.umd.edu/class/spring2012/cmsc411/p1/code/cache.h http://www.cs.umd.edu/class/spring2012/cmsc411/p1/code/cache.h http://www.cs.umd.edu/class/spring2012/cmsc411/p1/code/cache.c http://www.cs.umd.edu/class/spring2012/cmsc411/p1/code/cache.c http://www.cs.umd.edu/class/spring2012/cmsc411/p1/code/main.h http://www.cs.umd.edu/class/spring2012/cmsc411/p1/code/main.h http://www.cs.umd.edu/class/spring2012/cmsc411/p1/code/main.c http://www.cs.umd.edu/class/spring2012/cmsc411/p1/code/main.c http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/public-block.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/public-block.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/public-assoc.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/public-assoc.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/public-write.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/public-write.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/public-instr.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/public-instr.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/spice10.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/spice10.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/spice100.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/spice100.trace o spice1000.trace (Links to an external site.) - 1st 1000 accesses in spice.trace • Expected outputs for public tests o public-block1.out (Links to an external site.) o public-assoc1.out (Links to an external site.) o public-write1.out (Links to an external site.) o public-instr1.out (Links to an external site.) o spice10.out (Links to an external site.) o spice100.out (Links to an external site.) o spice1000.out (Links to an external site.) • Makefile (Links to an external site.) - makefile to create simulator • runPublic (Links to an external site.) - csh script to run public tests • sim.pdf (Links to an external site.) - detailed description of project • tags.txt (Links to an external site.) - example index & tag values for spice100.trace In addition, there are three large application traces (not in p1.zip) you may download separately in traces.zip (Links to an external site.). Execution traces (traces.zip (Links to an external site.)): • spice.trace (Links to an external site.) - circuit simulator • cc.trace (Links to an external site.) - C compiler • tex.trace (Links to an external site.) - Tex document processor For this project, you must build a cache simulator that supports the following configuration: • cache size = 8192 (8K) • cache block size = 16 • cache associativity = 1 (direct-mapped) • write back • write allocate In the next mini-project, you will extend your cache simulator so it supports a variety of cache configurations. Later you will use your cache simulator to evaluate the impact of different cache parameters, using the three application traces (spice, cc, tex). Submission All your code should be in the file cache.c. You can submit your project code on Canvas. Academic Integrity http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/spice1000.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/spice1000.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/public-block1.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/public-block1.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/public-assoc1.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/public-assoc1.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/public-write1.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/public-write1.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/public-instr1.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/public-instr1.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/spice10.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/spice10.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/spice100.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/spice100.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/spice1000.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/outputs/spice1000.out http://www.cs.umd.edu/class/spring2012/cmsc411/p1/code/Makefile http://www.cs.umd.edu/class/spring2012/cmsc411/p1/code/Makefile http://www.cs.umd.edu/class/spring2012/cmsc411/p1/runPublic http://www.cs.umd.edu/class/spring2012/cmsc411/p1/runPublic http://www.cs.umd.edu/class/spring2012/cmsc411/p1/sim.pdf http://www.cs.umd.edu/class/spring2012/cmsc411/p1/sim.pdf http://www.cs.umd.edu/class/spring2012/cmsc411/p1/tags.txt http://www.cs.umd.edu/class/spring2012/cmsc411/p1/tags.txt http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces.zip http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces.zip http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces.zip http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces.zip http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/spice.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/spice.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/cc.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/cc.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/tex.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p1/traces/tex.trace Please carefully read the academic honesty section of the course syllabus. Any evidence of impermissible cooperation on projects, use of disallowed materials or resources, or unauthorized use of computer accounts, will be submitted for punitive action, which could result in an XF for the course, or suspension or expulsion from the University. Be sure you understand what you are and what you are not permitted to do in regards to academic integrity when it comes to project assignments. These policies apply to all students, and the lack of knowledge of the policies is not an acceptable defense for violating them. Full information is found in the course syllabus--- please review it at this time. =================================================== Mini-Project 2 - Full Cache Simulator mini-Project 2 (Links to an external site.) - http://www.cs.umd.edu/class/spring2012/cmsc411/p2 (Links to an external site.) Project description You will need to extend your trace-driven cache simulator from mini-project 1 to handle different cache configurations and use it to evaluate the performance of different cache architecture features. Some additional example test outputs for different cache configurations are provided. Getting Started Download the following archive file p2.zip (Links to an external site.) and extract its contents. Copy cache.c from mini project 1 into the code directory. You will find the following new project files: • Public tests o public-block.trace (Links to an external site.) - test cache block sizes o public-assoc.trace (Links to an external site.) - test cache associativity o public-write.trace (Links to an external site.) - test cache write policy o public-instr.trace (Links to an external site.) - test instruction cache o spice10000.trace (Links to an external site.) - 1st 10000 accesses in spice.trace • Expected outputs for public tests o public-block.out (Links to an external site.) o public-assoc.out (Links to an external site.) o public-write.out (Links to an external site.) o public-instr.out (Links to an external site.) o spice10000-block.out (Links to an external site.) o spice10000-assoc.out (Links to an external site.) o spice10000-write.out (Links to an external site.) o spice10000-instr.out (Links to an external site.) • runPublic2 (Links to an external site.) - csh script to run public tests http://www.cs.umd.edu/class/spring2012/cmsc411/p2 http://www.cs.umd.edu/class/spring2012/cmsc411/p2 http://www.cs.umd.edu/class/spring2012/cmsc411/p2 http://www.cs.umd.edu/class/spring2012/cmsc411/p2 http://www.cs.umd.edu/class/spring2012/cmsc411/p2 http://www.cs.umd.edu/class/spring2012/cmsc411/p2 http://www.cs.umd.edu/class/spring2012/cmsc411/p2 http://www.cs.umd.edu/class/spring2012/cmsc411/p2 http://www.cs.umd.edu/class/spring2012/cmsc411/p2/p2.zip http://www.cs.umd.edu/class/spring2012/cmsc411/p2/p2.zip http://www.cs.umd.edu/class/spring2012/cmsc411/p2/traces/public-block.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p2/traces/public-block.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p2/traces/public-assoc.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p2/traces/public-assoc.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p2/traces/public-write.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p2/traces/public-write.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p2/traces/public-instr.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p2/traces/public-instr.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p2/traces/spice10000.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p2/traces/spice10000.trace http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/public-block.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/public-block.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/public-assoc.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/public-assoc.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/public-write.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/public-write.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/public-instr.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/public-instr.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/spice10000-block.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/spice10000-block.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/spice10000-assoc.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/spice10000-assoc.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/spice10000-write.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/spice10000-write.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/spice10000-instr.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/outputs/spice10000-instr.out http://www.cs.umd.edu/class/spring2012/cmsc411/p2/runPublic2 http://www.cs.umd.edu/class/spring2012/cmsc411/p2/runPublic2 You should also run your simulator using the full application traces (spice.trace, cc.trace, tex.trace) from mini-project 1 to ensure your simulator works properly. Submission All your code should be in the file cache.c. You can submit your project to Canvas. Academic Integrity Please carefully read the academic honesty section of the course syllabus. Any evidence of impermissible cooperation on projects, use of disallowed materials or resources, or unauthorized use of computer accounts, will be submitted for punitive action, which could result in an XF for the course, or suspension or expulsion from the University. Be sure you understand what you are and what you are not permitted to do in regards to academic integrity when it comes to project assignments. These policies apply to all students, and the lack of knowledge of the policies is not an acceptable defense for violating them. Full information is found in the course syllabus--- please review it at this time. ===================================================== Mini-Project 3 - Cache Simulation Study mini-Project 3 (Links to an external site.) - http://www.cs.umd.edu/class/spring2012/cmsc411/p3 (Links to an external site.) (Links to an external site.)Project description You will use your trace-driven cache simulator from project 2 to evaluate the performance of different cache configurations, using the full application traces (spice.trace, cc.trace, tex.trace) found in traces.zip (Links to an external site.) from project 1. You need to evaluate four cache parameters: 1. Impact of cache size (find working set size for each application)
Dec 03, 2021
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here