(Posted Dec 17, 2018)
(Posted Dec 11, 2018)
(Posted Dec 8, 2018)
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.
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.
In this project, you will learn how to optimize the performance of a program on a pipelined 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).
In this project, you will implement a basic image processing technique called pixelization using the x86-64 assembly language.
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.
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.
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) |