Class Introduction

SMBC comic

First of all, welcome!

Welcome to the online-only version of UC Davis ECS 154B Computer Architecture in Winter Quarter 2021! I have offered this class one other time in an online format (Spring 2020). I have taken what I learned from that offering and made some change for this quarter. However, I’m still learning how best to teach online.

My goal with this class is to encourage as much participation and interaction as possible. I learn best from interacting with others. So, I’m going to provide you with as many ways to interact with me, with our TA (Maryam), and each other as possible.

What is this class? VIDEO

Here, we find our first video. Throughout these materials, there will be embedded videos for you to watch. These will be taking the place of in-person lecture.

This video welcomes you to the class!

Usually, these videos will be 5-15 minutes long so that you won’t be overwhelmed. After each video, there will be a short Canvas-based quiz to check your understanding. There is more information about quizzes below.

Class organization VIDEO

Video describing the class organization.

As previously mentioned, this class will be all online. For details of the class policies, see the syllabus. Below, I’ll briefly discuss some of the changes from a normal “in-person” class.

Quiz Just testing you

Use Canvas to complete the quiz

Lectures

Instead of in-person lectures, all of the content that I will be delivering will be through this website and videos. You can find all of the videos on this website hosted by Aggie Video.

Most of the content will be via the video lectures since this is a high bandwidth way for me to deliver content. However, there will also be links and further explanation written to go along with the videos.

Quizzes

There will be a short quiz after every few videos to help promote learning through this asynchronous medium. You can take these quizzes as many times as you like. The quizzes are due every couple of days, kind of like a normal lecture. There is no late penalty for quizzes, so if something comes up, you can take the quiz after you have found time to watch the video.

I think you’ll learn best if you complete the quiz, then come back later and fix any errors you may have made. Therefore, when you submit your quiz, you will not immediately see what you got right and wrong. When the quiz is due, you will see all of the correct and incorrect answers. At that time you can go back and update any questions you got wrong for full credit.

Note: quizzes are due when we would have been covering those topics in “real” lecture. By doing the quizzes before the due date (or on the day it’s due) you will make sure that you’re keeping up with the course.

Quizzes will close even to late submission 1 week after they are due (except for the first week’s quizzes).

More information about the quizzes can be found on the syllabus.

Discussion

Not only will I be presenting lectures asynchronously through video, but discussions will also be online. We will be using Discord for discussion groups.

I’m going to try something different for lecture/discussion. Since this is all remote, I don’t believe that synchronous lectures make sense. Instead, all lecture material will be available asynchronously as video/text on the website.

Even though most of the content of this class is going to be available asynchronously, I do think that some synchronous communication is important! Thus, I’m going to convert all lectures/discussion into small group discussion sections. There will be 8 sections each week and each section will be 25 minutes. The discussion section times are during our scheduled lecture/discussion times. If you have a hard conflict with all of these times contact Jason immediately!

Attending discussion is required (see participation on the syllabus for more details). However, you’re only required to attend one discussion time each week. I would prefer you to attend the same one each week, but it’s not required.

The details about the discussion sections can be found on the syllabus.

As always, let me know if there are any questions/comments! This is something new to all of us, and if it doesn’t work out, we’ll try something new :).

Project

Throughout this class you will be designing the Davis In-Order CPU or DINO CPU. The DINO CPU assignments will roughly follow lectures. You can find more information, and all of the assignments, on the DINO CPU repository for Winter Quarter 2021.

Assignment 1: Getting started with Chisel

In this assignment, we will introduce you to the Chisel “hardware construction language” by asking you to implement a couple of simple circuits in Chisel. First, you will implement the ALU control unit that you will use in the single cycle CPU design. Then, you will begin implementing the single-cycle CPU datapath. By the end of this assignment you will be able to correctly execute 10 RISC-V instructions (about 25%)!

Assignment 2: A single-cycle CPU design

In this assignment, you will extend what you started in assignment 1 and implement the rest of the RISC-V RV32I instruction set! To do this, you will complete the datapath implementation and implement the control logic for the processor. At the end, you will be able to run real applications compiled with GCC on your processor!

Assignment 3: A pipelined CPU design

In this assignment, broken into two parts, you will be implementing a more realistic, pipelined-based core design. In the first part, you will split your single cycle design into five different pipeline stages and ensure that all instructions except control have a correctly wired datapath. Then, in part two you will finish wiring the rest of the datapath and the control path for the control instructions and implement the hazard detection and forwarding logic.

Assignment 4: A pipelined CPU design

TBD

Assignment 5: A pipelined CPU design

TBD

Tests

There will be three tests this quarter. The tests will be after each of the three main modules, processor architecture, memory architecture, and parallel architecture.

More information on the tests can be found on the syllabus.

Books

There are two books for this class. The lectures and reading will be from Computer Organization and Design RISC-V Edition: The Hardware/Software Interface by D. A. Patterson and J. L. Hennessy. This book is available on Canvas (for a price via “Equitable” Access). You may also have luck using Google to find the book.

I have also suggested that you get The RISC-V Reader: An Open Architecture Atlas by David Patterson and Andrew Waterman. I find this book to be a very useful reference while developing the DINO CPU. However, all of the information in this book can be found for free in the RISC-V specification although the specification isn’t as easy to read.

Discussion

General discussion

Discuss in the Discord app!
Or, on the web