For Part I of the assignment, complete the quiz on Canvas. For Part II (and the bonus exercise), submit a report in a PDF file. There is no code submission for this assignment.
Part I: Basic knowledge
Complete the quiz Assignment Quiz I: Computer Organization. Remember to review all the lecture videos and slides before attempting!
Part II: The RISC-V architecture
In this exercise, you will compare your CPU in your own computer (part of the assignment is for you to look up information about your own processor on your own) with a CPU in RISC-V architecture, called BOOM. To understand the architecture of BOOM, read this paper. Do not worry if you do not fully understand all the technical details in the paper (but if you are interested to go deeper, also read this paper, and this paper, they are not required for this assignment).
Compare and contrast the BOOM architecture with your own CPU. In particular, you should compare:
- What type of Instruction-Level Parallelism (ILP) is supported by the CPU(s). Are there any differences?
- What kind of Instruction-Set-Architecture (ISA) do the two processors follow?
- Is it a CISC or RISC-based architecture?
- What characteristics/properties impact performance between the two processors (Frequency, etc.)
- Any other difference that you might think impacts performance or programmability.
Discuss and contrast the above questions (and any other you find relevant) in 250-300 words, with a focus on differences in your view and on the implications. Backup your view using the paper, what you have learned in the lecture, and any other resources.
Bonus exercise (+1): simulating a CPU
Refer to the Tutorial: Simulating a CPU with gem5, where we simulated an x86 CPU without caches. In this exercise, we will modify the CPU that you created in the tutorial.
Notice that for this exercise, you will need a Linux OS. If you are on Windows, try to use the Windows Linux Subsystem 2 (WSL2).
- 1.1 Locate and identify where the processor frequency is set.
- 1.1.1 Investigate the impact that changing the frequency has on the execution time. Make a plot with frequency on the x-axis and execution time on the y-axis.
- 1.1.2 What trends do you notice? Is the result as you expect?
- 1.2 Locate and identify where the memory controller (in our tutorial DDR3) is set. - No need of implementing it in gem5
- 1.2.1 What is the difference between DDR3 and DDR4 technologies? Check resources online to find out the differences.
- 1.3 How do you set in-order and out-of-order CPUs in gem5? - No need of implementing it in gem5
- 1.3.1 What is the difference between in-order and out-of-order CPUs?
Discuss and reason in 250-300 words, the role and aptitude that simulators such as GEM5 have in research and in prototyping new processors? Is it equally valuable for software developers? Motivate your answers.