Study Guide | EEE 105 Module 4
UP EEEi | Lawrence Quizon
Module Intro
In this module, you will learn how to implement a single-cycle processor. For starters, remember how a finite state machine works. A processor is essentially a large finite state machine, whose state variables are its register file and the data memory together called the “architectural state”. Its inputs are the instruction memory and the program counter. Whatever you put into the instruction memory is the input, and it influences how the state variables of the processor evolve.
Topic 1: Single Cycle Datapath Part 1 - R-type Instructions
We first start by learning how instructions are fetched from memory, and then we will study how we can build a datapath that supports R-type arithmetic instructions.
Watch the lecture below:
Study Questions
- What do we need to add or change in the datapath to support AND and OR instructions?
- To support the immediate addressing instructions ADDI and SUBI, what do we need to add to the datapath?
Topic 2: Single Cycle Datapath Part 2 - Complete Datapath: Loads and Branches
A processor that can only do ADD and SUB instructions isn’t very useful. We need to support the memory and branch instructions to create a more useful processor. To do this, we need to add a few more things to the datapath.
Watch the lecture below:
Study Questions
- If a MUX introduces 2ns of delay to the datapath and \(T_{SU}=1ns\), what is now the maximum allowable clock frequency for this single-cycle processor?
- If we were to merge the instruction memory and the data memory into one, what would we need to change? Can this processor still work in one cycle?
Quiz
In light of the upcoming reading break (Oct 24-28), there is no quiz for this module! Please await the problem set to be released during module 4.