Computer Organization and Design
Sections 4.1-4.4
Computer Architecture: A Quantitative Approach
Appendix C.1
In this section, we will be digging into the necessary components and details on how to design a processor. The goal of this section will be to design a full RISC-V processor, which is Assignment 2 (Due 4/17).
“Executing” an instruction takes many different steps. It’s more complicated than just “execution.”
Canonically, we have the following five steps to complete an instruction:
The videos below explains these steps in more detail and some example instructions.
This first video discusses the first two steps, fetching and decoding an instruction. In this video, I also discuss some details of what a register file actually looks like and how it operates.
Next, we look at details of execute, memory, and writeback.
Next, we’ll discuss how to split up the hardware into two parts, the control path and the data path. By splitting the hardware this way, we’re able to use one set of hardware to execute many different instructions.
Now, we can use the following design (what you will be implementing in DINO CPU Assignment 2) to run any RISC-V instruction with one set of hardware!
In the next video, I go through a couple of example instructions with the datapath that you will be implementing in DINO CPU Assignment 2. Note that this datapath was from WQ’21, and it varies slightly from the version in Winter 2024.
See canvas for the quiz!
In these videos, we will analyze this microarchitecture to understand the performance characteristics and limits of this design.
Note that these videos will be using the design from spring quarter 2020 which is a bit different than your design. However, the idea is the same. The quiz below will be using your design for Winter 2024 so you will see examples using that design too.
This video discusses the performance of the above single cycle design and provides an example of computing the performance.
This video discusses the limitations of single cycle designs and why real systems aren’t implemented this way. In this video I introduce a second CPU design. This design isn’t very “realistic” in that no real processor implements it. However, we have freedom to make any design that we want, and this is an interesting point in the design space.
See Canvas for the quiz!