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

News

   The final exam results were posted in eTL. Please visit your TA at #301-517 to check your exam papers. If you have any questions or claims on exam results, please drop by my office at #301-520. Any claims should be made by Dec. 21st.

(Posted Dec 17, 2018)

   We will have the final exam from 9:30am to 10:45am on December 13th at the lecture room #301-203. The scope is Chap. 1, 2.1-2.4, 3.1-3.10, 4, 5.7, 6, 9.1-9.7 in the textbook and those materials covered in lecture slides and project assignments. This will be a closed-book exam.

(Posted Dec 11, 2018)

   The grading script for Project #5 is now up and running. You can submit your code up to 50 times.

(Posted Dec 8, 2018)

Schedule

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

Day Topic Reading
9/4 Course overview Chap. 1
9/6 Integers Chap. 2.1-2.3
9/11
9/13 Floating Points Chap. 2.4
9/18
9/20 Machine-level Representation of Programs Chap. 3.1-3.3
9/25 National holiday
9/27
10/2
10/4 Assembly I: Basic Operations Chap. 3.4-3.5
10/9 National holiday
10/11
10/16 Assembly II: Control Flow Chap. 3.6
10/18 Assembly III: Procedures Chap. 3.7-3.10
10/23
10/25
10/30 Y86-64 ISA Chap. 4.1
11/1 Midterm Exam
11/6
11/8 Logic Design Chap. 4.2
11/13 No class
11/15 No class
11/20 Sequential Y86-64 Implementation Chap. 4.3
11/22 Pipelining Chap. 4.4
11/27 Basic Pipelined Y86-64 Implementation Chap. 4.5
11/29 Complete Pipelined Y86-64 Implementation Chap. 4.5
CPU Performance Chap. 5.7
11/29 Supplementary Class I-A (6:30pm ~ 9:30pm, #301-203)
11/30 Supplementary Class I-B (4:00pm ~ 7:00pm, #301-551)
12/4 The Memory Hierarchy Chap. 6.1-6.3
12/6 Cache Memories Chap. 6.4-6.6
Virtual Memory Chap. 9
12/6 Supplementary Class II-A (6:30pm ~ 9:30pm, #301-203)
12/7 Supplementary Class II-B (4:00pm ~ 7:00pm, #301-551)
12/11 Exceptions and Interrupts Chap. 8.1
12/13 Final Exam

Credit: Some 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 instructor.

Project #5: Optimizing Performance on a Pipelined Y86-64 Processor

In this project, you will learn how to optimize the performance of a program on a pipelined Y86-64 processor.

Project #4: Enhancing the Sequential Y86-64 Processor

In this project, you will learn about the design and implementation of a sequential Y86-64 processor by enhancing its ISA (Instruction Set Architecture).

Project #3: Image Pixelization

In this project, you will implement a basic image processing technique called pixelization using the x86-64 assembly language.

Project #2: TinyFP (8-bit floating point) Representation

The goal of this project is to make you get familiar with the floating-point representation by implementing a simplifed 8-bit floating-point representation.

  • Project specification: pa2.pdf (Revised on Oct. 17th due to a typo)
  • Skeleton code: pa2-skeleton.tgz
  • Due date: October 28th, 11:59PM

Project #1: 64-bit Arithmetic using 32-bit Integers

The purpose of this project is to become more familiar with the binary representation of integers and to understand what happens during the arithmetic operations between two integers.

Course Information

When 9:30 - 10:45 (Tuesday / Thursday)
Where Lecture room #301-203, Engineering Building I
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 Randal E. Bryant and David R. O’Hallaron, Computer Systems: A Programmer’s Perspective, 3rd Edition, Pearson Education Limited, 2016.
Reference David A. Patterson and John L. Hennessy, Computer Organization and Design: MIPS Edition, 5th Edition, Morgan Kaufmann, 2013.
Prerequisites 4190.103A Programming Practice
M1522.000700 Logic Design
Basic knowledge of C programming on Linux
Grading Exams: 60% (Midterm 25%, Final 35%)
Projects: 40% (4 ~ 5 project assignments planned)
* Grading policy is subject to change
Teaching Assistant Joowon Lee
(x7296, Room #301-517)