Course Project

The purpose of this project is to become familiar with a widely used architectural simulator and use that simulator to perform original architectural research or evaluate some existing architectural research. Whereas you will not be graded down for evalating existing research, it is not uncommon for orginal research ideas implemented as a part of a course project to go on to be published in top conferences.

Important Dates

Group members due: Tuesday, Sept 7 @ 5pm (5%)
Proposal due: Tuesday, Sept 28 @ 5pm (15%)
Status report and log files due: Tuesday, Nov 2 @ 5pm (5% - report, 2% log file)
Final research report and log files due: Tuesday, Nov 30 @ 5pm (70%, 3% log file)

All work will be submited via Sakai. ABSOLUTELY NO LATE work will be accepted. Yes, this means you will get a 0 if you are late! The assignment submission on Sakai will not allow late submission, so make sure that you submit early. You can always resubmit if you make changes.

Group members

For this project, you can work alone or with 1 or 2 other people (i.e., the maximum group size is 3). You must submit your group members by the date listed above. Both individuals and groups will be graded the same - I do not expect a better project from a group, nor will I accept less work from an individual. You may choose your own partners, but please choose wisely! After you have formed your group, you may not change/drop partners.

In addition, all academic integrity and collaboration polices discussed on the main page apply to this project.

Log Files

Each group member will need to maintain a detailed log file throughout the project. This log file will allow me to track your progress and verify that all group members are indeed participating equally. Your log file should contain an entry for every bit of time spent on the project, as well as an estimate of how much effort you feel each group member is contributing. Since you may not want your group members seeing this log file, you may keep it private and turn the file in separately (there will be a special turn in just for log files). You must keep this log file even if you are working alone. Here is a sample log file. Remember, the more details you have the better. You will be graded based on your level of detail.

Simulator and Benchmarks

For the simulator, you willuse the sim-outoforder version of Simplescalar. You will need to learn how to install and setup Simplescalar. Whereas Simplsscalar is an older simulator, you will find that it is well established and still widely used. Special permission may be given to groups that wish to do a research topic that is not supported by Simplescalar

I am intentionally not giving you any details on how to install or use Simplescalar. Part of the purpose of this project is to help you learn how to teach yourself. An invaluable skill will be the ability to work independently and learn how to find the answers that you seek. Here are a few links to get you started, but a quick google search should provide you with everything that you need:
You should use any standard benchmark suite that is suitable for your proposed topic.

The Proposal

You will need to submit a 1 to 2 page document detailing your proposed work by the deadline above. Proposals submitted early will get early feedback. The document should be formatted like a standard research paper (see research paper details below). Your proposal needs to contain the following information:
  1. A description of the topic
  2. A statement of why the topic is interesting or important
  3. Description of related work, including references to at least three relevent papers (see note on related work below).
  4. A description of the methods used to evaluate the proposed topic. Projects with original research need to include more details.
  5. GANTT chart with the proposed timeline for work broken up across group members. You must use GanttProject
  6. Anticipated results

Status Report

You will need to submit a status report by the deadline above. This status report should clearly describe the progress made thus far, report any deviations from the proposal's GANTT chart, include a new GANTT chart for the remainder of the project's duration if there are any progress speed changes (changes can not be made to your final outcome goals), and any preliminary results. You will not be graded on your progress but rather the physical act of turning in the report with the required status updates. This report will give both you and me a chance to evaluate your progress and provide feedback. In rare cases, mid-course corrections with respect to your final goals may be allowed.

Possible Research Topics

You are encouraged to come with an original research topic. An original topic is no simply a topic that is not listed below, but is instead a brand new idea, never before published. This is exactly what research for a thesis entails, but it is difficult to come up with a new topic. However, you are more than welcome to choose from the list below or Google for an idea. You will not be marked down for not having an innovative topic, nor will you get extra credit for creating an innovative topic. I only suggest that you choose a topic from an area that personally interests you. Many of the suggestions from the following list were taken from other computer architecture courses at other universities: The following are some titles of projects from previous offerings of this course at other schools. Titles alone don't tell you everything, but you can get some ideas:

Research Paper

To prepare you for writing technical documents in the future, you will write your paper in the current IEEE or ACM format for two column, single spaced, 9-pt or 10-pt font, fully justified text (this will become clear as you read papers). Your paper should be approximately 6 pages. A research paper basically contains the following sections. There are variations depending on what needs to be reported:
    Abstact: 100-200 words describing what you did and results
  1. Introduction: Background information and a longer summary of what you did and results you got. You should briefly mention how you technique differs from previous work in this section
  2. Related work: Provide summaries of previous work related to your optimization including references to the papers (include cross-reference to paper listed in your references section). In this section you should clearly distinguish your work from previous work, giving details on how your work is different and how your work improves and/or extends previous methods. Be careful not to trash anyone elses work in this section. For one, it is tacky and two, the authors you are trashing are likely reviewing your paper
  3. Methodology: Describe what you did, how you did it, how it works, etc. Give architectural diagrams, charts and figures where necessary.
  4. Experiment Results: Include a subsection describing your experimental setup followed by (a) subsection(s) presenting your results. Be concise and use graphs to show improvements. Tables may also be used but a graph showing improvements conveys your results much easier than a table that must be read and interpretted. Make sure you analyze your results!!! Just showing some charts and reciting numbers does not provide any insights on what you have learned from these results. Provide an indepth analysis on what the results mean and trends that are revealed.
  5. Conclusions and Future Work: Summarize work and results. Give any future work you may be planning or future work that could be done
  6. Acknowledgments: Acknowledge any person that helped with your research that is not listed as an auther. Also acknowledge any funding sources that funded this work (of course you will not have that for this paper, just future reference).
  7. References: List of papers cited throughout your paper.
Although I don't recommend it, research papers are typically written in MS Word (which is actually what I use). LaTex is also a popular method. You may use any editor that you wish, just make sure your document is formatted correctly.I highly suggest that you use existing published works as a example of the details you should be putting this is paper. For example, a common fault I have seen in student research papers is lack of results analysis. Showing a few graphs and reciting some numbers do not provide any analysis or insights gained about the experiments.

Note on related work: In computer systems (including architecture, compilers, databases, operating systems, networking), conferences are MORE important than journals. Some important architecture conferences and journals include: International Symposium on Computer Architecture(ISCA), Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), International Symposium on Microarchitecture (MICRO), International Symposium on High Performance Computer Architecture (HPCA, IEEE Transactions on Computers, ACM Transactions on Computer Systems, IEEE Computer, IEEE Micro, and Microprocessor Report.