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
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 |
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 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 |