Project Description
This project is the culminating experience for the course. For this project, you have the opportunity to further explore (research and implement) a topic in computer architecture.
Option 1 – Verilog CPU Advanced Feature
After completing the pipelined CPU, your group might choose to implement an advanced feature to add to your CPU. Some ideas could be:
– implement several cache designs (instruction and/or data) and evaluate their performance in your CPU.
– implement a branch predictor (or predictors) and evaluate its performance.
– implement dynamic scheduling (scoreboard or Tomasulo).
– implement superscalar issue.
Option 2 – Computer Architecture Learning Tool
– An interactive datapath simulator. Given a specific sequence of instructions, the datapath animates the signals used and shows all data values.
– An online MIPS pipeline diagram or scoreboard or Tomasulo diagram generator.
Option 3 – Computer Architecture Research
Teach us a topic broadly in the field of computer architecture from the Morgan & Claypool Synthesis Lectures on Computer Architecture. Choose one of the topics, read and understand the concept. Then prepare a class-long presentation (30-40 minutes) of the material for the rest of the class. Your class must include an interactive activity and quiz (10-20 minutes).
OR
Choose a challenge from InnoCentive that relates to Computer Architecture. Develop a proposed solution and proof of concept solution. Present your solution to the class.
https://www.innocentive.com/ar/challenge/browse
Grading Rubric
Sophisticated [20-18] | Competent [18-15] | Basic [15-12] | Needs Improvement [<12] | |
---|---|---|---|---|
Challenge: How challenging is your topic (to implement in 5 weeks)? | Challenging for any senior to beginning grad-level CS/CPE student (estimate >10 hrs/week/person) | Challenging, but most good students would be able to complete with 6-10 hrs/week/person. | Some thought was required but anyone in the class could do the same with little effort (2-6 hrs/week/person). | Not challenging to anyone in the class. (<2 hrs/week/person) |
Implementation: Did the group successfully implement the feature they proposed? | Yes, and it is genuinely useful. Future students will benefit from this innovation. Significantly better than anything currently available. | Yes, it works but has little impact on performance or learning. | Mostly working but with some minor problems. Does illustrate the concept but the group seems to have run out of time. | Unusable. Major problems prevent the group from demonstrating their solution. |
Experimentation: Did you perform interesting experiments/description that demonstrates your mastery of the concept. | The presentation / learning tool provides several (>3) useful examples of interesting results derived from the project. Better than reading the textbook / Wikipedia / etc. | A few (2-3) moderately interesting results were presented, slightly better than existing resources. | A few (2-3) results were presented but didn’t explain/illustrate the idea any better than existing sources. | 1 or fewer results. |
Presentation and packaging: Your presentation should clearly explain your project, how you implemented it, tested, and what you learned from the experience. | The presentation was clear and the project is fully documented and packaged so that new students could pick it up and use it. | The presentation was clear and the project could be used/extended in the future with some effort. | The presentation wasn’t fully clear and/or it would be difficult to continue the work later. | The presentation was unclear/disorganized and the project needs to be significantly rewritten to be useful. |
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.