DM548 - Computer Architecture and System Programming, 2018¶
Schedule¶
Week |
Day |
Class |
Material |
Notes |
---|---|---|---|---|
36 |
Mon. |
F |
Introduction |
|
37 |
Mon. |
F |
Assembly
(1 Oct: slide 24 updated with flags and mode for “ |
|
Wed. |
F |
Slides, Ch. 9, 10 |
Computer arithmetic |
|
Tue. / Wed. |
L |
(no class) |
||
Thu. |
E |
(no class) |
||
38 |
Mon. |
F |
Computer arithmetic, continued |
|
Wed. |
F |
Slides, Ch. 11 |
Digital logic |
|
Tue. / Wed. |
L |
Introduction to assembly |
||
Thu. |
E |
(no class) |
||
39 |
Mon. |
F |
Slides, Ch. 3 |
Top-level view |
Wed. |
L |
I/O and command line arguments |
||
Thu. |
E |
Computer arithmetic |
||
40 |
Mon. |
F |
Slides, Ch. 4 |
Caches (15 Oct.: slides updated) |
Wed. |
F |
(cancelled) |
||
Tue. / Wed. |
L |
More assembly |
||
Thu. |
E |
(no class) |
||
41 |
Mon. |
F |
(cancelled) |
|
Wed. |
F |
Caches, continued |
||
Tue. / Wed. |
L |
(cancelled) |
||
Thu. |
E |
(cancelled) |
||
42 |
(fall break) |
|||
43 |
Mon. |
F |
Slides, Ch. 5, 6 |
Internal and external memory |
Tue. |
F |
Slides, Ch. 7 |
I/O |
|
Thu. |
E |
Computer arithmetic and boolean algebra |
||
44 |
Mon. |
F |
Slides, Ch. 14 |
Processor structure and pipelining |
Wed. |
F |
Slides, Ch. 15 |
RISC |
|
Tue. |
L |
SSE |
||
Thu. |
E |
Cache and memory |
||
45 |
Mon. |
F |
Superscalar processors. Parallel Processing and Multicore Computers |
|
Wed. |
F |
Slides, Ch. 20, 21 |
Parallel Processing and Multicore Computers, continued. Control unit |
|
Thu. |
E |
Remaining exercises and project Q/A |
||
46 |
Mon. |
F |
Control unit, continued |
|
Wed. |
F |
Introduction to C |
||
Thu. |
E |
I/O, Processor Structure, and RISC |
||
Sun. |
Assignment 1 deadline |
|||
47 |
Mon. |
F |
Introduction to C, continued. I/O in C |
|
Wed. |
F |
I/O in C continued, Makefiles, User-defined types (30 Nov.: Makefile slides and code updated) |
||
Tue. / Wed. |
L |
Introduction to C |
||
Thu. |
E |
Superscalar processors and parallel processing |
||
48 |
Mon. |
F |
Dyn. Mem. Slides, Dyn. Mem. Code, Various Slides, Various Code |
User-defined types continued, Dynamic memory allocation, Various |
Wed. |
F |
Various continued. |
||
Tue. / Wed. |
L |
A binary search tree in C. |
||
Thu. |
E |
(no class) |
||
49 |
Mon. |
F |
Libraries |
|
Tue. / Wed. |
L |
A binary search tree in C, continued. |
||
Thu. |
E |
|||
50 |
Sun. |
Assignment 2 deadline |
Exam¶
The details of the written exam are posted on Blackboard under Course Information and Announcements.
The exam questions will be in English, but answers may be written in either English or Danish.
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 curriculum.
Teaching Assistants¶
Caroline Berntsen Knudsen
Jørn Guldberg
Material¶
William Stallings: Computer Organization and Architecture — Designing for Performance, Global Edition, 10th edition, Pearson, 2015.
Course Evaluation¶
The course evaluation, without free-text comments, can be found here, and the action plan can be found here.
Additional Resources¶
x86(-64) Instruction Reference (note that the order of operands is the reverse of the AT&T syntax)
-
Ring Interconnect in Intel microarchitectures.
Sanitizers:
Exploits:
PortSmash, snoop on another process in processors with simultaneous multi-threading (SMT), e.g., HyperThreading.