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 09/27: Introduction, Admin 09/28: Bits and Bytes
1 10/01:CA Integer Arithmetic 10/04:SP C Intro I 10/05:SP Floating Point
2 10/08:CA Assembly Language I 10/11:SP C Intro II 10/12:SP Assembly Language II
3 10/15:SP Assembly Language III 10/18:SP Assembly Language III (cont.) 10/19:SP C Intro III
4 10/22:SP Structured data 10/25:CA Buffers and other practical issues 10/26:SP C Intro IV
5 10/29:CA Sequential Processors 11/01:CA Sequential Processors (cont.) 11/02:SP Pipelined Processors
6 11/05:SP Memory Hierarchy 11/08:CA Memory Hierarchy (cont.) 11/09:CA Caches
7 11/12:SP Optimization I 11/15:CA Optimization II 11/16:CA Optimization (cont.)
8 11/19:CA Linking 11/22:CA Measuring Program Performance 11/23:CA Measuring Program Performance (cont.)
9 11/26:SP Exceptions I 11/29:SP Exceptions II 11/30:CA Virtual Memory
10 12/03:SP Virtual Memory Case Study 12/06:SP Dynamic Memory Allocation I 12/07:SP Dynamic Memory Allocation II
11 12/10:SP System-level I/O 12/13:SP Virtual Machines 12/14:CA/SP Test your knowledge
12 12/17:SP Parallel Programming 12/20:SP Parallel Programming (cont.) 12/21:CA/SP Past & Future Trends, Multi-Core

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 Christian Fischlin cfischli HG G 5 13:15 -- 15:00 Raffaele Sandrini sandrinr
ML J 34.1 Susanne Cech Previtali, Oliver Trachsel scech, toliver HG D 3.2 13:15 -- 15:00 Peter Heinrich peterhe
HG G 26.5 Yang Su, Albert Noll ysu, anoll IFW E 42 13:15 -- 15:00 Christoph Angerer, Mathias Payer angererc, payerm
CAB H 56 Manuel Lang malang IFW B 42 15:15 -- 17:00 Basil Fierz bfierz

Recitation sessions

Week Monday: CA Tuesday: SP
1 2007-10-01: Introduction 2007-10-02: Introduction to Linux/Shell
2 2007-10-08: Integer Arithmetic and Floating Point 2007-10-09: Classroom exercise: Floating Point
3 2007-10-15: Addressing modes, overflow, CCs, classroom exercise 2007-10-16: Binary Operators
4 2007-10-22: Hints for Assignment 3 2007-10-23: C, Assembly and Stack (classroom exercise, only hint sheet online)
5 2007-10-29: Assembly and Stack Classroom Exercise 2007-10-30: Hints for Assignment 4
6 2007-11-05: SEQ simulator, Y86 assembly, Assignment 5 2007-11-06: Classroom Exercise: Execution tracing in sequential Y86
7 2007-11-12: Disk Geometry, Memory Hierarchy and Caches 2007-11-13: Hints for the binary bomb lab
8 2007-11-19: Pipelined processor 2007-11-20: Pipelined processor
9 2007-11-26: Linking, relocation 2007-11-27: Optimization, hints for Assigment 8
10 2007-12-03: Virtual memory, Assignment 9 2007-12-04: System calls
11 2007-12-10: Dynamic Memory Allocation 2007-12-11: Control flow, Assignment 10

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 2007-10-08 2007-10-15 hw1.pdf, fp-sum.tar, polynomial.tar hw1-solution.pdf
2 CA/SP 2007-10-16 2007-10-23 hw2.pdf, hw2.tar.gz, results page no example solution
3 CA/SP 2007-10-22 2007-10-29 hw3-assembly.pdf, ccodes.c hw3-solution.pdf
4 CA/SP 2007-10-30 2007-11-06 hw4-structureddata.pdf hw4-solution.pdf
5 CA/SP 2007-11-05 2007-11-12 hw5-seq.pdf, simguide.pdf, sim.tar hw5-seq-solution.pdf
6 CA/SP 2007-10-30 2007-11-06 hw6-bomblab.pdf, gdbreference.pdf
7 CA 2007-11-19 2007-11-26 hw7-pipe.pdf, simguide.pdf, sim.tar
8 SP 2007-11-27 2007-12-04 hw8-opt.pdf, mmul.c hw8-opt-solution.pdf, mmul_opt.c, mytimer.h, mytimer.c
9 CA 2007-12-03 2007-12-10 hw9-vm.pdf hw9-vm-solution.pdf
10 SP 2007-12-11 2007-12-18 hw10-signals-controlflow.pdf, hw10-skeletons.tar.gz hw10-solution.pdf, hw10-solutions.tar.gz
11 CA 2007-12-17 2008-01-07 Assignment 11 hw11-openmp-solution.tar.gz

List of computer rooms with Linux installed

Reading material