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

Groups and assistants

All groups meet Monday 13:15 -- 15:00.

Room Assistant nethz ID
HG D 3.1 Christian Plattner cplattne
HG G 26.5 Yang Su, Andreas Wuest ysu, awuest
IFW C 42 Susanne Cech, Oliver Trachsel scech, toliver
ML J 34.1 Adrian Schüpbach, Christian Fischlin scadrian, cfischli

Tentative schedule of lectures

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

Week Monday Thursday Friday
0 10/27: Admin 10/28: Introduction Bits and Bytes
1 10/31:CA Integer Arithmetic 11/3:SP Assembly Language I 11/4:SP Assembly Language I
2 11/7:CA Floating Point 11/10:SP Assembly Language II 11/11:SP Assembly Language II, Procedure call
3 11/14:No lecture (day of teaching) 11/17:SP Procedure call 1 11/18:SP Procedure call 2
4 11/21:SP Structured data 11/24:SP Buffers and other practical issues 11/25:CA Sequential Processors
5 11/28:CA Sequential Processors (cont.) 12/1:CA Pipelined Processors 12/2:SP
6 12/5:SP Optimization 1 12/8:CA Memory Hierarchy 1 12/9:CA Memory Hierarchy 2
7 12/12:SP Midterm 12/15:CA Caches 12/16:CA Caches, cont.
8 12/19:CA Optimization 2 12/22:CA Optimization 2 (cont) cancelled 12/23:CA Midterm
9 1/9:SP Linking 1/12:SP Exceptions I 1/13:SP
10 1/16:CA Exceptions II 1/19: SP Exceptions, cont. 1/20:SP Measuring Program Performance
10 1/23:SP Virtual Memory 1/26:CA Dynamic Memory Allocation I 1/27:CA Dynamic Memory Allocation II
12 1/30: CA Virtual Memory Case Study 2/2: SP System Level I/O 2/3: SP System Level I/O
13 2/6: CA/SP Test your knowledge 2/9: CA/SP Virtual Machines 2/10: CA/SP Q&A, Special Topics

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.

You must solve the assignments on your own! It is important that you realize that the solution to an assignment that you turn in must be your work. Copying another student's solution (or providing a solution for another student) is not acceptable and we must refer to the university's rules on cheating in exams. You are welcome (and encouraged) to discuss problems and assignments with other students but the work you turn in must be your own. If you have any questions about this policy, please contact the instructors.

Your grade will be based on the midterm and final (50%) and on the solutions to the assignments (50%).

Number Out Due Description Other
0 10/28 11/7 Assignment 0
1 11/14 11/28 Assignment 1 (Datalab) datalab-handout.tar, Solution 1
2 12/05 12/19 Assignment 2 (Archlab) archlab-handout.tar Solution 2
3 12/20 no hand-in Memory hierarchy exercise Solution
4 01/16 01/23 Assignment 3 (Buflab) buflab-handout.tar, http://so.inf.ethz.ch/buflab/
5 01/30 02/06 Assignment 4 Solution

List of computer rooms with Linux installed

Reading material