News

Course overview

This course provides a programmer's view of how computer systems execute programs, store information, and communicate. The course attempts to expose students to the practical issues that affect performance, portability, robustness, and extensibility. This course provides a foundation for subsequent courses on operating systems, networks, compilers and many other courses that require an understanding of the system-level issues. We discuss the core topics 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 also 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 expected to have a basic knowledge of statistics and probability theory.

Topics include

Course schedule

Lectures are given in The rooms for the recitation sessions will be announced later.

Tentative schedule of lectures

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

Week Tuesday Wednesday
0 09/16: Introduction, Admin Bits and Bytes
1 09/22: Integer Arithmetic 09/23: Floating Point
2 09/29: Assembly Language I 09/30: Assembly Language II
3 10/06: Assembly Language III 10/07: Structured data
4 10/13: Buffers and other practical issues 10/14: Sequential Processors
5 10/20: Sequential Processors (cont.) 10/21: Pipelined Processors
6 10/27: Memory Hierarchy 10/28: Memory Hierarchy (cont.) Caches
7 11/03: Caches (cont.) 11/04: Optimization I
8 11/10: Optimization II 11/11: Linking
9 11/17: Exceptions I 11/18: Exceptions II
10 11/24: Virtual Memory 11/25: Measuring Program Performance
11 12/01: Linux Memory Management Dynamic Memory Allocation I 12/02: Dynamic Memory Allocation II
12 12/08: System-level I/O 12/09: Extra Topics
13 12/15: Test your knowledge 12/16: Past & Future Trends, Multi-Core

Groups and assistants

CASP: Thursday 13:15 - 15:00
Room Assistants nethz ID Language
HG F26.3 Stefan Ackermann stefaack german
IFW A34 Christoph Baumann baumachr german
IFW C42 Simon Gerber gerbesim german
HG F26.5 Zaheer Chotia zchothia english
IFW A36 Mathias Payer / Michael Pradel payerm / pradelm english

C Introduction

Date Slides
17/09 Overview and basic programming
24/09 Advanced programming and environment

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!

Week Assignment Out Due Description Solution
0 C Introduction
1 C Introduction II and Numbers 2009-09-24 2009-10-01 hw1.pdf, fp-sum.tar, polynomial.tar solution
2 Basic assembly and bit operations 2009-10-01 2009-10-08 part 1, part 2, datalab, Beat the Prof solution, discussion
3 Assembly, IA32 Reference Sheet 2009-10-08 2009-10-15 assignment, stack cheat sheet, ccodes.c solution
4 Assembly, Arrays, Structs, Unions 2009-10-15 2009-10-22 assignment solution
5 Sequential Processor Architecture 2009-10-22 2009-10-29 assignment, SEQ stages, simulator, guide solution
6 Disk Capacity, Caches, Bomb Lab, classroom exercise 2009-10-29 2009-11-12 Bomb request, results page, GDB reference sheet solution
7 Pipelined Processor Architecture, classroom exercise 2009-10-29 2009-11-12 hw7.tar.bz2 solution classroom, solution homework
8 Performance Measurement and Optimization 2009-11-12 2009-11-19 Assignment (updated!), mmul.c solution
9 Linking and Process Management 2009-11-19 2009-11-26 Assignment, skeletons.tar.bz2 solution, solutions.tar.bz2
10 Virtual Memory, Caches, TLB 2009-11-26 2009-12-03 Assignment solution
11 Dynamic Memory Allocation 2009-12-03 2009-12-10 Assignment solution

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

List of computer rooms with Linux installed

Reading material