DM548 - Computer Architecture and System Programming, 2019¶
Schedule and Plan¶
Full schedule: MitSDU
Week |
Day |
Class |
Notes |
---|---|---|---|
36 |
Mon. |
F |
Introduction, Ch. 1, 2 |
Wed. |
F |
Instruction Sets and x86-64 Assembly, Ch. 12, 13 |
|
Thu. |
F |
Computer Arithmetic, part 1, Ch. 9, 10 |
|
37 |
Mon. |
F |
Computer Arithmetic, part 2, Ch. 10 |
Thu. |
F |
Digital Logic, Ch. 11 |
|
Tue. / Thu. |
L |
||
38 |
Mon. |
F |
A Top-Level View and Interconnection Structures, Ch. 3, App. C |
Wed. / Thu. |
L |
||
39 |
Mon. |
F |
Cache Memory, part 1, Ch. 4 |
Tue. / Fri. |
E |
Exercises, Sheet 1 |
|
Wed. / Thu. |
L |
||
40 |
Tue. |
F |
Cache Memory, part 2, Ch. 4. Makefiles |
Wed. / Thu. |
L |
||
41 |
Tue. |
F |
Internal and External Memory, Ch. 5 and 6. |
Wed. / Thu. |
E |
Exercises, Sheet 2 |
|
42 |
(no classes) |
||
43 |
Mon. |
F |
Internal and External Memory, Ch. 6. System Programming in C, Introduction |
Wed. |
E |
Exercises, Sheet 3 |
|
44 |
Mon. |
F |
System Programming in C, Introduction |
Thu. |
F |
System Programming in C, I/O, User-Defined Types |
|
Tue. / Wed. |
E |
(no class) |
|
Wed. |
Assignment 1 deadline |
Week |
Day |
Class |
Notes |
---|---|---|---|
45 |
Mon. |
F |
System Programming in C, User-Defined Types, Dynamic memory |
Thu. |
F |
(no class) |
|
Tue. / Wed. |
L |
System Programming in C, Lab 1 |
|
46 |
Mon. |
F |
System Programming in C, Dynamic memory, Various |
Thu. |
F |
System Programming in C, Various, Libraries, Makefiles |
|
Tue. / Wed. |
L |
System Programming in C, Lab 2 |
|
47 |
Mon. |
F |
I/O, Ch. 7 Processor Structure and Function, Ch. 14 |
Thu. |
F |
Processor Structure and Function, Ch. 14 |
|
Tue. / Wed. |
L |
System Programming in C, Lab 3 |
|
48 |
Mon. |
F |
RISC, Ch. 15 |
Tue. / Wed. |
E |
Exercises, leftover exercies. |
|
49 |
Mon. |
F |
Superscalar Processors, Ch. 16, |
Wed. |
F |
Parallel Processing and Multicore, Ch. 17, 18 |
|
Tue. |
E |
Exercises, Sheet 4 |
|
50 |
Mon. |
F |
Control Unit and Microprogramming, Ch. 20, 21 |
Tue. |
E |
Exercises, Sheet 5 |
|
Wed. |
Assignment 2 deadline |
||
51 |
Mon. |
F |
(Q&A Session) |
Tue. |
E |
Exercises, Sheet 6 |
|
2 |
Mon. |
Material¶
The main text book is
William Stallings: Computer Organization and Architecture — Designing for Performance, Global Edition, 10th edition, Pearson, 2015.
It can be bought in the book store.
Introduction¶
Chapter 1 and 2.
Supplemental Material¶
Video, “What’s Your Computer Actually Doing?”, Tom Scott
Video, “Von Neumann Architecture”, Computerphile
Video, “EDSAC Rebuild (Cambridge University’s 1st Computer)”, Computerphile
Video, “Punch Card Programming”, Computerphile
Video, “Mainframes and the Unix Revolution”, Computerphile
Video, “The Factory of Ideas: Working at Bell Labs”, Computerphile
Video, “UNIX Special: Profs Kernighan & Brailsford”, Computerphile
Video, “Bell Labs’ Research (Prof Brian Kernighan)”, Computerphile
Video, “Is it the End for Moore’s Law?”, Computerphile
Video, “Hello (World) Abstraction!”, Computerphile
Instruction Sets and x86-64 Assembly¶
Chapter 12 and 13.
Introduction to GDB (updated 5 Nov.)
Lab 4 (the last assembly lab): unsolved exercises from previous labs, and then Assignment 1.
Supplemental Material¶
Video, “Characters, Symbols and the Unicode Miracle”, Computerphile
Video, “Endianness Explained With an Egg”, Computerphile
Video, “GOTO, Goto & Goto”, Computerphile
Video, “Essentials: Hidden Pointers”, Computerphile
Video, “Bootstrapping EDSAC: Initial Order”, Computerphile
Video, “Hello World (Assemblers, Considered Harmful?!)”, Computerphile
Video, “Wheeler Jump”, Computerphile
Video, “ESSENTIALS: Subroutines & The Wheeler Jump”, Computerphile
Video, “What is Bootstrapping?”, Computerphile
Additional Resources¶
x86(-64) Instruction Reference (note that the order of operands is the reverse of the AT&T syntax)
Table of x86-64 Linux system calls
Use “
man 2 <syscall name>
” to get the man page for a specific system call.
-
SSE, Streaming SIMD Extensions
Computer Arithmetic¶
Chapter 9 and 10.
Exercises: sheet 1
Supplemental Material¶
Video, “Binary Addition & Overflow”, Computerphile
Video, “Binary: Plusses & Minuses (Why We Use Two’s Complement)”, Computerphile
Video, “Floating Point Numbers”, Computerphile
Video, “Floating Point Numbers (Part1: Fp vs Fixed)”, Computerphile
Video, “Floating Point Numbers (Part2: Fp Addition)”, Computerphile
Video, “Why Use Binary?”, Computerphile
Video, “Where did Bytes Come From?”, Computerphile
Digital Logic¶
Chapter 11.
A Top-Level View and Interconnection Structures¶
Chapter 3 and Appendix C.
Internal and External Memory¶
Chapter 5 and 6.
Supplemental Material¶
Video, “Magnetic Media (Floppies and Tapes)”, Computerphile
Video, “Error Detection and Flipping the Bits”, Computerphile
Video, “Error Correction”, Computerphile
Video, “Multiple Dimension Error Correction”, Computerphile
Video, “Correcting Those Errors”, Computerphile
Video, “The Perfect Code”, Computerphile
Video, “Error Correction & International Book Codes”, Computerphile
Video, “Reed Solomon Encoding”, Computerphile
I/O¶
Chapter 7.
Processor Structure and Function¶
Chapter 14.
RISC¶
Chapter 15.
Superscalar Processors¶
Chapter 16.
Parallel Processing and Multicore¶
Chapter 17 and 18.
System Programming in C¶
Introduction: lecture slides, examples
I/O: lecture slides
User-defined types: lecture slides, examples
Dynamic memory: lecture slides, examples
Various: lecture slides, examples
Libraries: lecture slides, examples
Lab 1: exercises
Lab 2: exercises, LinkedList_String.h
Lab 3: exercises, BinaryTree.h, BinaryTree.c
Introduction to GDB (updated 5 Nov.)
Supplemental Material¶
Additional Resources¶
Sanitizers:
Teaching Assistants¶
Section H1, Jakob Galle Kjær-Kammersgaard
Section H2, Jørn Guldberg
Exam¶
The exam date can be seen on the page with examination dates for all courses at NAT. The time and location will be posted on Blackboard.
The details of the written exam will be posted on Blackboard under Course Information and Announcements.
A selection of exam questions from previous years can be found here. The filenames refer to the year the course took place, not the year the exam was held. The oldest questions are unfortunately only available in Danish. Note that not all questions are relevant in the current version of the course.