CMSC 411, Fall 2009

Computer Systems Architecture

Project 1 - Cache Simulator

Part A (Basic simulator) - Due 11:59pm Sun, Nov 22th, 2009
Part B (Full simulator) - Due 11:59pm Wed, Dec 2rd, 2009
Part C (Performance evaluation) - Due 9:30am Thu, Dec 10th, 2009

Project description

You will need to implement a trace-driven cache simulator, and use it to evaluate the performance of different cache architecture features.

The project is described in detail in sim.pdf.

Getting Started

Download the following archive file and extract its contents.

Along with files used to make direct submissions to the submit server (submit.jar, .submit), you will find the following project files:

In addition, there are three large application traces (not in you may download separately in

Execution traces (

Part A - Basic cache simulator

For the first part of the project, you should 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

Part B - Full cache simulator

For the second part of the project, your should extend your cache simulator so it supports a variety of cache configurations.

Part C - Performance evaluation

For the third part of the project, you should use your cache simulator to evaluate the impact of different cache parameters, using the three application traces (spice, cc, tex).


All your code should be in the file cache.c. You can submit your project directly to the submit server via its web interface here.

You may also submit your project directly by executing a Java program on a computer with Java and network access. Use the submit.jar file from the archive, To submit, go to the directory containing your project and type the following command:

java -jar submit.jar

You will be asked to enter your class account and password, then all files in the directory (and its subdirectories) will be put in a jar file and submitted to the submit server. If your submission is successful you will see the message:

Successful submission # received for project 1

Academic Integrity

The Campus Senate has adopted a policy asking students to include the following statement on each assignment in every course: "I pledge on my honor that I have not given or received any unauthorized assistance on this assignment." Consequently your program is requested to contain this pledge in a comment near the top.

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 to the Student Honor Council, 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 Student Honor Council does not consider lack of knowledge of the policies to be a defense for violating them. Full information is found in the course syllabus---please review it at this time.