News

Course overview

This course provides an overview of "computer architecture" as a platform for the execution of (compiled) computer programs. The course introduces the major structures that have direct influence on the execution of programs (processors with registers, caches, other levels of the memory hierarchy) and covers implementation and representation issues only to the extend that they are necessary to understand the structure and operation of a computer system. The course covers the basics of performance evaluation (with a focus on the practical aspects of data collection and analysis).

This course does NOT cover how to design or build a processor or computer. Students are advised to take the course in concurrently with "System-level Programming". Students are expected to have a basic knowledge of statistics and probability theory.

Topics include

Course schedule

Tentative schedule of lectures

This is a plan. No plan survives contact with reality.

Week Monday Thursday Friday
0 10/26: Admin 10/27: Introduction, Bits and Bytes (tg)
1 10/30:CA Integer Arithmetic (tg) 11/2:SP C Intro I (ta) 11/3:SP Floating Point (ga)
2 11/6:CA Assembly Language I (tg) 11/9:SP C Intro II (ta) 11/10:SP Assembly Language II (tg)
3 11/13:SP Assembly Language III (tg) 11/16:SP Procedure call, continued (tg) 11/17:SP C Intro III (ta)
4 11/20:SP Structured data (ga) 11/23:CA Buffers and other practical issues (tg) 11/24:SP C Intro IV (ta)
5 11/27:CA Sequential Processors (ga) 11/30:CA Sequential Processors (cont) (ga) 12/1:SP Pipelined Processors (ga)
6 12/4:SP Memory Hierarchy 1 (tg) 12/7:CA Memory Hierarchy 2 (tg) 12/8:CA Caches (tg)
7 12/11:SP Optimization 1 (tg) 12/14:CA Optimization 2 (tg) 12/15:CA Optimization, cont. (tg)
8 12/18:CA Linking (ga) 12/21:CA Measuring Program Performance (ga) 12/22:CA Measuring Program Performance (ga)
9 1/4:SP Exceptions I (ga) 1/5:SP Exceptions II (ga)
10 1/8:CA Virtual Memory (tg) 1/11:SP Dynamic Memory Allocation I (tg) 1/12:SP Course Evaluation, History (tg)
11 1/15:SP Dynamic Memory Allocation II (tg) 1/18:CA Extra Topics (tg) 1/19:SP System-level I/O (ga)
12 1/22:CA/SP Test your knowledge 1/25:SP Virtual Machines (ga/rm) 1/26:SP Virtual Memory Case Study (ga)
13 1/29:SP OpenMP I (tg) 2/1:SP OpenMP II (tg) 2/2:CA/SP Past & Future Trends, Multi-Core (tg)

Groups and assistants

Computer Architecture (CA): Monday, 13:15 -- 15:00 System Programming (SP): Tuesday
Room Assistants nethz ID Room Time Assistant nethz ID
IFW C 42 Tobias Abt, Oliver Trachsel abtt, toliver HG G 5 1:15 -- 3:00 Matthias Scheller, Michael Duller schellem, dullerm
ML J 34.1 Gabriel Petrovay, Susanne Cech, Oliver Trachsel pgabriel, scech, toliver HG D 3.2 1:15 -- 3:00 Peter Heinrich, Jan S. Rellermeyer peterhe, rjan
HG G 26.5 Christian Fischlin, Susanne Cech cfischli, scech IFW D 42 1:15 -- 3:00 Manuel Hess, René Müller mhess, muellren
CAB H 56 Lorenz Breu, Yang Su breul, ysu IFW B 42 3:15 -- 5:00 Antoine Thomas-Gérard, Biörn Biörnstad antoinet, bbioern

Recitation sessions

Week Monday: CA Tuesday: SP
1 2006-10-30: Introduction 2006-10-31: Introduction to Linux
2 2006-11-06: Integer Arithmetic and Floating Point 2006-11-07: Floating Point Classroom Exercises
3 2006-11-13: Assembly programming revisited 2006-11-14: Round-to-even, Assignment 2
4 2006-11-20: Hints for Assignment 3 2006-11-21: C, Assembly and Stack (classroom exercise, no slides)
5 2006-11-27: Assembly and Stack Classroom Exercise 2006-11-28: Structured Data, Assignment 4
6 2006-12-04: Y86, SEQ, Assignment 5 2006-12-05: Classroom Exercise: Execution tracing in sequential Y86
7 2006-12-11: Classroom Exercise: disks, memory hierarchy 2006-12-12: Hints for the binary bomb lab
8 2006-12-18: PIPE, Assignment7 2006-12-19: Classroom Exercise: Pipeline Hazards
10 2006-01-08: Classroom Exercise: Virtual memory addressing 2006-01-09: Linking, Exceptional Control Flow, Assignment 8
11 2006-01-15: VM, Assignment 9 2006-01-16: Classroom Exercise: Dynamic Memory Allocation (no slides)
12 2006-01-22: Classroom Exercise: Fork, Jumps (no slides) 2006-01-23: Optimization, Assignment 10
12 2006-01-29: OpenMP, Assignment 11 2006-01-30: Q&A: Test your Knowledge

Assignments

Assignments are an important part of the course. You will not learn this material from listening to a lecture alone -- you have to do the assignments.

Note: Do not hesitate to ask your teaching assistant if you have troubles with the assignments!

Your grade will be based on the final (100%).

Number CA/SP Out Due Description Solution
1 CA 2006-11-06 2006-11-13 hw1.pdf, fp-sum.tar, polynomial.tar hw1-solution.pdf
2 SP 2006-11-14 2006-11-28 hw2.pdf, hw2.tar.gz
3 CA 2006-11-20 2006-11-27 hw3-assembly.pdf, ccodes.c hw3-solution.pdf
4 SP 2006-11-28 2006-12-05 hw4-structureddata.pdf hw4-solution.pdf
5 CA 2006-12-04 2006-12-11 hw5-seq.pdf, sim.tar, simguide.pdf hw5-seq-solution.pdf
6 SP 2006-12-12 2006-12-22 hw6-bomblab.pdf, gdbreference.pdf
7 CA 2006-12-18 2007-01-08 hw7-pipe.pdf, sim.tar hw7-pipe-solution.pdf
8 SP 2007-01-09 2007-01-16 hw8-linking-controlflow.pdf hw8-solution.pdf
9 CA 2007-01-15 2007-01-22 hw9-vm.pdf hw9-vm-solution.pdf
10 SP 2007-01-23 2007-01-30 hw10-opt.pdf mmul.c hw10-opt-solution.pdf code.zip
11 CA 2007-01-29 2007-02-09 hw11-openmp.pdf hw11.zip hw11-openmp-solution.pdf

Office hours during the semester break

Computer Architecture (CA): Tuesday, 14-16 System Programming (SP): Thursday, 14-16
2007-02-06Susanne Cech/Oliver Trachsel (RZ H2) 2007-02-08Michael Duller (IFW B45.2)
2007-02-13Susanne Cech (RZ H2) 2007-02-15René Müller (IFW B45.2)
2007-02-20Oliver Trachsel (RZ H2) 2007-02-22Jan S. Rellermeyer (IFW B47.1)
2007-02-27Yang Su (RZ H5) 2007-03-01 Biörn Biörnstad (IFW B48.2)

List of computer rooms with Linux installed

Reading material