(Posted Jun 17, 2019)
(Posted Jun 3, 2019)
(Posted Jun 1, 2019)
The following schedule is tentative and subject to change without notice.
Day | Topic | Reading |
---|---|---|
3/5 | Course Overview | Chap. 1 |
3/7 | Integers | Chap. 2.1-2.3 |
3/12 | Floating Points | Chap. 2.4 |
3/14 | ||
3/19 | Machine-level Representation of Programs | Chap. 3.1-3.3 |
3/21 | ||
3/26 | Assembly I: Basic Operations | Chap. 3.4-3.5 |
3/28 | ||
4/2 | Assembly II: Control Flow | Chap. 3.6 |
4/4 | ||
4/9 | Assembly III: Procedures | Chap. 3.7-3.10 |
4/11 | ||
4/16 | ||
4/18 | Y86-64 ISA | Chap. 4.1 |
4/23 | Logic Design | Chap. 4.2 |
4/25 | Sequential Y86-64 Implementation | Chap. 4.3 |
4/30 | Midterm Exam | |
5/2 | ||
5/7 | Pipelining | Chap. 4.4 |
5/9 | Pipelined Y86-64 Implementation | Chap. 4.5 |
5/14 | ||
5/16 | CPU Performance | Chap. 5.7 |
5/21 | Canceled | |
5/23 | Canceled | |
5/28 | The Memory Hierarchy | Chap. 6.1-6.3 |
5/30 | Cache Memories | Chap. 6.4-6.6 |
5/31 | Supplementary Class I-A (6:30pm ~ 9:00pm @ #301-551) | |
6/3 | Supplementary Class I-B (6:30pm ~ 9:00pm @ #301-551) | |
6/4 | Virtual Memory | Chap. 9 |
6/6 | National holiday | |
6/7 | Supplementary Class II-A (6:30pm ~ 9:00pm @ #301-551) | |
6/10 | Supplementary Class II-B (6:30pm ~ 9:00pm @ #301-551) | |
6/11 | Exceptions and Interrupts | Chap. 8.1 |
6/13 | Final Exam |
Credit: Most 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. Our target is the pipelined Y86-64 processor implementation called PIPE-Stall that does not support data forwarding. You need to optimize the bmp_diag()
function written in Project #3 so that you can get the most out of the PIPE-Stall processor.
In this project, you will implement a basic image processing program using the x86-64 assembly language. An image file in the BMP format will be given as an input to your program. This assignment aims at introducing various primitive instructions provided by the x86-64 assembly language. In addition, you will learn the basic structure of the BMP image file.
The goal of this project is to get familiar with the floating-point representation by implementing a simplified 8-bit floating-point representation.
The purpose of this project is to understand the fixed-point representation. Another goal is to make your Linux development environment ready and to get familiar with our sys server for project submission.
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: RISC-V Edition, First Edition, Morgan Kaufmann, 2017. |
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 | Jaehoon Shim (x7296, Room #301-517) |