Computer Architecture (Fall 2020) | SNU Systems Software & Architecture Laboratory

News

   We plan to have the final exam from 11:00am to 12:15pm on December 14th at the lecture rooms 302-105 and 302-106. The scope is Chap. 1.6, 1.9-1.10, 2.1-2.8, 2.13-2.14, 2.19, 4.1-4.8, 4.14, 5.1-5.4, 5.7-5.8 in the textbook and those materials covered by lecture slides and project assignments (especially, snurisc5 and snurisc6). It will be a closed-book exam. Please note that the 1-page cheat sheet will not be allowed for the final exam.

(Posted Dec 8, 2020)

   We will have another supplementary class at 7:00pm on this Friday (Dec. 4). Hope to see you all!

(Posted Nov 30, 2020)

   The final project assignment has been announced here. The due date is 11:59PM, December 16 (Wednesday). There will be an online TA session at 7:00pm today.

(Posted Nov 25, 2020)

Schedule

The following schedule is tentative and subject to change without notice.

Day Topic Reading
9/2 Course Overview (Online)
9/7 Introduction to Computer Architecture (Online) Chap. 1 (except 1.6, 1.9)
9/9 Integers (Online) Chap. 2.4, 3.1-3.4, 3.6
9/10 Lab. session #1 @ 7:00pm (Online)
9/14
9/16
9/21 Floating Points (Online) Chap. 2.3, 2.9, 3.5, 3.9-3.10
9/23
9/28
9/28 Lab. session #2 @ 7:00pm (Online)
9/30 National Holiday
10/5 RISC-V Architecture I (Online) Chap. 2.1-2.3, 2.6
10/7
10/12 RISC-V Architecture II (Online) Chap. 2.7-2.8, 2.10, 2.13-2.14
10/14
10/19 Midterm Exam (Offline)
10/21
10/26 Machine-level Representation of Programs (Online) Chap. 2.5, 2.12, 2.16-2.20
10/26 Lab. session #3 @ 7:00pm (Online)
10/28 Sequential Processor (Updated on Nov. 9) (Online) Chap. 4.1-4.4
11/2
11/4
11/9 Pipelining (Online) Chap. 4.5
11/11 Pipeline Hazards (Online) Chap. 4.6-4.9
11/16
11/18
11/20 Invited Talk @ 2:00pm: The Behind Story, Present, and Future of RISC-V from a RISC-V Co-Inventor (Yunsup Lee, SiFive, Inc.) (Online)
11/23 Memory Hierarchy (Online) Chap. 5.1-5.2
11/25 Cache (Online) Chap. 5.3
Lab. session #4 @ 7:00pm (Online)
11/26 Performance (Supplementary Class @ 7:00pm) (Online) Chap. 1.6, 1.9, 2.13
11/30 Cache Optimization (Online) Chap. 5.4
12/2
12/4 Advanced Processor Architecture (Supplementary Class @ 7:00pm)(Online) Chap. 4.10-4.11, 4.14-4.15
12/7 Virtual Memory (Online) Chap. 5.7-5.8, 5.13, 5.16-5.17
12/9
12/14 Final Exam (Offline)

Credit: Most of slides for this lecture are based on materials provided by the textbook publisher.

Projects

For project submission and automatic grading, we are running a dedicated server at http://sys.snu.ac.kr. If you want to access the sys server outside of the SNU campus, please send a mail to the TAs at snucsl.ta AT gmail.

The RISC-V Instruction Set Manual

Project #4: A 6-stage Pipelined RISC-V Simulator

The goal of this project is to understand how a pipelined processor works. You need to build a 6-stage pipelined RISC-V simulator called snurisc6 in Python that supports the most of RV32I base instruction set.

  • Project specification and skeleton code available here
  • Due date: 11:59PM, December 16 (Wednesday)

Project #3: RISC-V Assembly Programming

The goal of this project is to give you an opportunity to practice RISC-V assembly programming. In addition, this project introduces various RISC-V tools that help you compile and run your RISC-V programs.

  • Project specification and skeleton code available here
  • Due date: 11:59PM, November 8 (Sunday).

Project #2: FP12 (12-bit Floating Point) Representation

The goal of this project is to get familiar with the IEEE 754 floating-point standard by implementing a 12-bit floating-point representation (fp12 for short).

  • Project specification and skeleton code available here
  • Due date: 11:59PM, October 11 (Sunday).

Project #1: Compressing Data with Huffman Coding

This project demonstrates how we can compress data using a simplified Huffman coding. The purpose of this project is to make you familiar with the binary representations of strings/integers and the logical operations supported in the C programming language. Another goal is to make your Linux or MacOS development environment ready and to get familiar with our project submission server.

  • Project specification and skeleton code available here
  • Due date: 11:59PM, September 20 (Sunday).

Course Information

When 11:00 - 12:15 (Monday / Wednesday)
Where Online lecture using zoom
Instructor Jin-Soo Kim
Professor, Dept. of Computer Science and Engineering, SNU
Language English
Course Description This course introduces the main components of a modern computer system including the instruction set, the processor, and the memory hierarchy. We cover techniques such as pipelining, caching, and virtual memory. In addition, this course gives a historical perspective on the evolution of computer systems and an overview of performance evaluation methodologies.
Textbook David A. Patterson and John L. Hennessy, Computer Organization and Design: RISC-V Edition, First Edition, Morgan Kaufmann, 2017.
Reference Randal E. Bryant and David R. O’Hallaron, Computer Systems: A Programmer’s Perspective, 3rd Edition, Pearson Education Limited, 2016.
Prerequisites 4190.103A Programming Practice
M1522.000700 Logic Design
Basic knowledge of C & Python programming on Linux
Grading Exams: 60% (Midterm 25%, Final 35%)
Projects: 40% (PA#1 5%, PA#2 8%, PA#3 13%, PA#4 14%)
* Grading policy is subject to change
Teaching Assistant Sunmin Jeong (sunnyday0208@snu)
Injae Kang (abcinje@gmail)