DM548 - Computer Architecture and System Programming, 2019

Course description

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

Instruction Sets and x86-64 Assembly, Lab 1

38

Mon.

F

A Top-Level View and Interconnection Structures, Ch. 3, App. C

Wed. / Thu.

L

Instruction Sets and x86-64 Assembly, Lab 2

39

Mon.

F

Cache Memory, part 1, Ch. 4

Tue. / Fri.

E

Exercises, Sheet 1

Wed. / Thu.

L

Instruction Sets and x86-64 Assembly, Lab 3

40

Tue.

F

Cache Memory, part 2, Ch. 4. Makefiles

Wed. / Thu.

L

Instruction Sets and x86-64 Assembly, Lab 4

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.

Exam

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

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

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

Computer Arithmetic

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

Supplemental Material

  • Video, “AND OR NOT”, Computerphile

  • Video, “XOR & the Half Adder”, Computerphile

  • Video, “How Computer Memory Works”, Computerphile

  • Video, “Flip Flops, Latches & Memory Details”, Computerphile

  • Video, “Addressing Memory (Pt1)”, Computerphile

A Top-Level View and Interconnection Structures

Supplemental Material

Cache Memory

Internal and External Memory

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

Processor Structure and Function

Supplemental Material

  • Video, “Computer Speeds”, Computerphile

RISC

Superscalar Processors

Additional Resources

Parallel Processing and Multicore

Additional Resources

  • Video, “Multiple Processor Systems”, Computerphile

  • Video, “Additional Processors”, Computerphile

  • Ring Interconnect

  • Mesh Interconnect

  • Video, “What’s Behind Port Smash?”, Computerphile

  • PortSmash, snoop on another process in processors with simultaneous multi-threading (SMT), e.g., HyperThreading.

  • Zen

Control Unit and Microprogramming

System Programming in C

Supplemental Material

  • Video, “‘C’ Programming Language: Brian Kernighan”, Computerphile

  • Video, “Why C is so Influential”, Computerphile

  • Video, “Essentials: Pointer Power!”, Computerphile

Additional Resources

Mandatory Assignments

Assignment 1: Sorting in Assembly

  • Project description: PDF (updated Tue. 22 October)

  • Code snippets: code, check.py

  • Deadline: Wednesday, 30 October, at 13:00 (CET)

  • Resubmission deadline: Wednesday, 11 December, at 15:00 (CET)

Assignment 2: Cycle Detection in C

  • Project description: PDF

  • Deadline: Wednesday, 11 December, at 15:00 (CET)

  • Resubmission deadline: Tuesday, 17 December, at 10:00 (CET)

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.

Course Evaluation

The course evaluation, without free-text comments, can be found here, and the action plan can be found here.