252-0061-00L Systems Programming and Computer Architecture
252-0061-00L Systems Programming and Computer Architecture
What's new?
- January 21, 2011: Replaced all slides (minor changes).
- January 11, 2011: Added corresponding book chapters to lecture schedule.
- January 10, 2011: Added place and time of exam.
- January 7, 2011: Revised version of Chapter 9 up (changed: jump instructions).
- December 23, 2010: Sample solution 11 and lecture 22 with slides on memory-related perils and pitfalls up.
- December 20, 2010: Sample solution 10 up.
- December 14, 2010: Lecture 25 slides up.
- December 13, 2010: Lecture 24 slides up.
- December 9, 2010. Sample solutions 8 and 9 up.
- December 8, 2010: Assignment 11 up
- December 7, 2010: Updated a bunch of lectures to remove the intermediate transition slides. Please inform an assistant if some lectures still need to be updated.
- December 7, 2010: Lecture 22 and 23 slides up.
- December 2, 2010: Assignment 10 up
- November 29, 2010: Lecture 20 and 21 slides up.
- November 25, 2010: Sample solutions 5, 6 and 7 up.
- November 24, 2010: Assignment 9 up.
- November 22, 2010: Lecture 18 and 19 slides up.
- November 22, 2010: Changes to the teaching schedule.
- November 17, 2010: Assignment 8 up.
- November 15, 2010: Lecture 16 and 17 slides up.
- November 10, 2010: Assignment 7 is up.
- November 8, 2010: Lecture 14 and 15 slides up.
- November 8, 2010: Assignment 5 is updated (correction to Question 3).
- November 4, 2010: Sample solution 3 and top 3 DataLab student solutions up.
- November 4, 2010: Assignment 6 up and slight modifications to the assignment schedule.
- November 2, 2010: Lecture 12 and 13 slides up.
- October 28, 2010: Sample solution 2 up.
- October 28, 2010: Assignment 5 up.
- October 26, 2010: Update to the lecture schedule.
- October 26, 2010: Lecture 10 and 11 slides up.
- October 22, 2010: Page for tracking your BombLab results is up.(see Assignments section)
- October 21, 2010: Sample solution 1 up.
- October 21, 2010: Assignment 4 up.
- October 18, 2010: Lecture 8 and 9 slides up.
- October 13, 2010: Assignment 3 up.
- October 13, 2010: Revised version of Chapter 7 is up.
- October 11, 2010: Lecture 6 and 7 slides up.
- October 7, 2010: Assignment 2 up.
- October 5, 2010: Revised version of Assignment 1 is up (changed: due date is Oct 14).
- October 5, 2010: Revised versions of Chapter 4 and 5 and the C tutorial are up.
- October 1, 2010: Posted instructions for doing assignment 1 in Windows.
- September 29, 2010: Assignment 1 up.
- September 27, 2010: Lecture 3 slides up.
- September 27, 2010: Update to the schedule: September 29th is cancelled and October 6th is back on schedule.
- September 23, 2010: The C tutorial is up.
- September 16, 2010: Tentative schedule and list of assignments up.
Course Information
Overview
This course introduces the fundamental concepts, mechanisms, and techniques that underpin how computer systems process information, execute programs, and interact with the outside world. We focus on computing immediately above and below the boundary between hardware and software, and expose students to the practical issues that affect performance, portability, robustness, and extensibility through assembly language, the C programming language, and computer hardware from the perspective of systems software.
Topics include
- Representing information in computer systems
- Systems programming in C
- Assembly language and compiled code
- Sequential, pipelined, and multicore processor design
- Caches and the memory hierarchy
- Performance optimization and performance measurement
- Devices, I/O, traps, and DMA
- Memory management
Main Text and Reference books
- R. Bryant, D. O'Hallaron: Computer Systems: A Programmer's Perspective, 2nd ed. 2002, Prentice Hall.
- B. Kernighan, D. Ritchie: C Programming Language, 2nd ed. 1988, Prentice Hall.
Recommended Text and Reference books
- D. Patterson, J. Hennessy: Computer Organization and Design, 4nd ed. 2008, Morgan Kaufmann.
- S. Harbison, G. Steele: C: A Reference Manual, 5nd ed. 1994, Prentice Hall.
- S. Oualline: Practical C Programming, 1997, O'Reilly.
- S. Prata: C Primer Plus, 2004, Sams.
- U Kirch-Prinz, P. Prinz: C Pocket Reference, 2002, O'Reilly.
- Intel publishes a lot of material covering the IA-32 processors. The official web site for IA-32 and Intel 64 documentation is here.
Additional Material
Staff
- Timothy Roscoe (troscoe at inf) CAB F79 (En)
- Michael Duller (michael.duller at inf) CAB E78 (De)
- Adrian Laurent Schuepbach (scadrian at inf) CAB E78 (De)
- Akhilesh Singhania (akhi at inf) CAB E71.2 (En)
- Ercan Ucan (eucan at inf) CAB E69 (En)
Hilfsassistenten
- Simon Gerber (simugerber at student) (De)
- Jonas Pfefferle (jonaspf at student) (De)
- Dino Wernli (dwernli at student) (De)
Exam
The exam will take place in HIL F 15 on Thursday, February 3, 2011.
Course Hours
- Lecture
- Tue, 8-10h, room CAB G 11: Timothy (En)
- Wed, 10-12h, room CAB G 11: Timothy (En)
- Exercise
- Thu, 13-15h, room IFW A 32.1: Adrian / Michael (De)
- 13-15h, room IFW A 34: Akhilesh (En)
- 13-15h, room IFW A 36: Ercan (En)
- 13-15h, room IFW B 42: Dino (De)
- 13-15h, room IFW C 35: Jonas (De)
- 13-15h, room IFW C 42: Simon (De)
Schedule
Tentative schedule
| Week no. | Lecture no. | Lecture Date | Lecture topic | Book (2nd ed.) chapter |
| 0 | 1 | Tue 21 Sep 10 | Intro, admin, bits & bytes: 1up-pdf, 6up-pdf | 2.1 |
| 2 | Wed 22 Sep 10 | Integer arithmetic: 1up-pdf, 6up-pdf | 2.2 - 2.3 | |
| 1 | 3 | Tue 28 Sep 10 | Floating point: 1up-pdf, 6up-pdf | 2.4 - 2.5 |
| - |
Wed 29 Sep 10 | Cancelled | ||
| 2 | 4 |
Tue 5 Oct 10 | Assembly Basics: 1up-pdf, 6up-pdf | 3.1 - 3.4, 3.13 |
| 5 |
Wed 6 Oct 10 | Addressing modes, control flow in m/c: 1up-pdf, 6up-pdf | 3.5 - 3.6 | |
| 3 | 6 |
Tue 12 Oct 10 | For loops, switch, procedures: 1up-pdf, 6up-pdf | 3.6 - 3.7 |
| 7 |
Wed 13 Oct 10 | Procedures, arrays, structures: 1up-pdf, 6up-pdf | 3.8 - 3.9 | |
| 4 | 8 |
Tue 19 Oct 10 | Structures, unions, floating point: 1up-pdf, 6up-pdf | 3.9 - 3.10, 3.14 |
| 9 |
Wed 20 Oct 10 | Instruction Set Architectures: 1up-pdf, 6up-pdf | 7.7, 3.13, 4.1 | |
| 5 | 10 | Tue 26 Oct 10 | Sequential Processors: 1up-pdf, 6up-pdf | 4.2 - 4.3 |
| 11 | Wed 27 Oct 10 | Pipelined Processors part 1: 1up-pdf, 6up-pdf | 4.4 - 4.5 | |
| 6 | 12 | Tue 2 Nov 10 | Pipelined Processors part 2: 1up-pdf, 6up-pdf | 4.5 - 4.6 |
| 13 | Wed 3 Nov 10 | Memory layout, process structure, worms: 1up-pdf, 6up-pdf | 3.12, 5.1 - 5.5 | |
| 7 | 14 | Tue 9 Nov 10 | Optimization: 1up-pdf, 6up-pdf | 5.6 - 5.11 |
| 15 | Wed 10 Nov 10 | Caches and Memory hierarchy: 1up-pdf, 6up-pdf | 6.2 - 6.6 | |
| 8 | 16 | Tue 16 Nov 10 | Linking: 1up, 6up | 6.6, 7.1 - 7.14 |
| 17 | Wed 17 Nov 10 | Exceptions: 1up, 6up |
8.1 | |
| 9 | 18 | Tue 23 Nov 10 | Virtual Memory I: 1up, 6up | 9.1 - 9.5 |
| 19 |
Wed 24 Nov 10 | Virtual Memory II: 1up, 6up | 9.6 - 9.7 | |
| 10 | 20 | Tue 30 Nov 10 | Devices and I/O: 1up, 6up | no book material |
| 21 | Wed 1 Dec 10 | Dynamic Memory Allocation I: 1up, 6up | 9.9 | |
| 11 | 22 | Tue 7 Dec 10 | Dynamic Memory Allocation II: 1up, 6up | 9.10 - 9.11 |
| 23 | Wed 8 Dec 10 | Multiprocessors: 1up, 6up | no book material | |
| 12 | 24 | Tue 14 Dec 10 | Synchronisation: 1up, 6up | no book material |
| 25 | Wed 15 Dec 10 | Multicores: 1up, 6up | no book material | |
| 13 | 26 | Tue 21 Dec 10 | Revisions, Q&A, etc. | |
| - |
Wed 22 Dec 10 | Cancelled |
Assignments
Sample solutions can be found here (password protected).
| Date |
Topic |
Material |
|
|---|---|---|---|
| 0 |
23 Sep 2010 |
C Introduction
|
C Tutorial |
| 1 |
30 Sep 2010 |
C Introduction II and Numbers |
datalab.pdf datalabhandout.tar datalab-Windows Beat the Prof |
| 2 |
7 Oct 2010 |
Basic assembly and bit operations |
assignment2.pdf |
| 3 |
14 Oct 2010 |
Assembly | assignment3.pdf ccodes.c |
| 4 |
21 Oct 2010 |
Assembly, Arrays, Structs, Unions |
bomblab.pdf Bomblab Rankings |
| 5 |
28 Oct 2010 |
Sequential Processor Architecture I |
assignment5.pdf |
| 6 |
4 Nov 2010 |
Sequential Processor Architecture II |
assignment6.pdf assignment6-simguide.pdf assignment6-sim.tar.bz |
| 7 |
11 Nov 2010 |
Pipelined Processor Architecture |
assignment7.pdf assignment7-sim.tar.gz simguide.pdf |
| 8 |
18 Nov 2010 |
Performance Measurement and Optimization |
assignment8.pdf mmul.c |
| 9 |
25 Nov 2010 |
Linking and Process Management |
assignment9.pdf |
| 10 |
2 Dec 2010 |
Virtual Memory, Caches, TLB |
assignment10.pdf |
| 11 |
9 Dec 2010 |
Dynamic Memory Allocation |
assignment11.pdf |
Exercise Groups
Group 1: Thursday 13:15 - 15:00, IFW A32, Deutsch
| Keller Jörg | Widmer Daniel Andreas | Sigrist Silvan Benedikt |
| Kuhn Fiona Nadine Sara | Theiler Raphael Gion Andries | Cicchetti Romano |
| Aras Mehmet Ersan | Marti Jan Moritz | Ameri Michael Salar |
| Hochuli Alexandra Stephanie Angelica | Inhelder Nadine | Wampfler Rafael Fjodor |
| Och Michael | Guzzella Marco Giuseppe | Goldberg Sebastien |
| Kohler Manuel Christoph | Teunissen Elena | Bohnes Joël Jochen |
| Schraink Sebastian | Medlik Julian Sebastian | Schmocker Roman Philipp |
| Meier Dominic Michael | Benbouhafs Kerim | Radde Sabine Anna Charlotte |
| Roos Adrian | Häusler Samuel | Marti Beatrice |
Group 2: Thursday 13:15 - 15:00, IFW A34, English
| Stark Philip Walter | Ben-Haim Liat | Bieg Mauro Dario |
| Zgraggen Tomas | Dietiker Daniel Stefan | Buff Raffael |
| Limacher Lukas | Jost Daniel | Bär Jeremia |
| Gremper Fabian | Poltera Marco | Fehr Marius Bruno |
| Zehnder Benjamin Robert | Koster Stephan | Zahler Urs Ulrich |
| Lagadec Alexandre Ichiro |
Group 3: Thursday 13:15 - 15:00, IFW A36, English
| Achermann Reto | Oser Benjamin | Kim Sungjee |
| Plangger Dominic | Bocksrocker Kevin | Larsson Per Christoffer |
| Hitz Samuel Lukas | Willi Stefan Johannes | Marcacci Rossi Nicola |
| Gelashvili Rati | Rudel Emanuele | Megaro Vittorio |
| Marco Zenger | ||
Group 4: Thursday 13:15 - 15:00, IFW B42, Deutsch
| Jutz Simon Peter | Benz Clea | Huguenin-Bergenat Daniel François |
| Lanz Sabine Julia | Zheng Ming Margrit | Trappenberg Jonas Benjamin |
| Geissmann Barbara Ruth | Zeller Christine Ida | Fuchs Raphael |
| Hildebrand Janosch Pipo | von Bergen Philippe | Jaggi Jorim Dorian |
| Reiter Christian Ziriak | Cinek Selim Flavio | Meyer Simone Andrea Camilla |
| Humair Luc Léonce | Zehnder Samuel | Schlüter Tobias |
| Hammann Sven | Oeschger Jonas | Boutellier Roman Andreas |
| Helfenstein Andrea Maria | Tomic Sasa | Meier Robert |
Group 5: Thursday 13:15 - 15:00, IFW C35, Deutsch
| Wischmann Severin Helgo | Hallauer Susanne | Berli Michael Johannes |
| Schölly Simon | Froese Florian Hermann | Fischli Pascal Marcel |
| Lutz Clemens | Zogg Gabor Alexander | Vinzens Gianluca Andrea |
| Guadagnini Reto | Langenegger Dominic Micha | Zweifel Samuel Lukas |
| Pfammatter Damian Mathias | Probst Oliver Josef | Weibel Raphael Pascal |
| Joller Jost Jonas | Meyer Roland Peter | Bertsch Marcel Thomas |
| Itten David Johannes | Schelker Matthias | Lengacher Dominik |
Group 6: Thursday 13:15 - 15:00, IFW C42, Deutsch
| Schreier Rudolf Maximilian | Benz Rodrigo Marco | Züst Marc |
| Zindel Philippe August | Wyss Reto | Kaufmann Antoine |
| Roos Markus Peter | Fasser Gian-Peder | Betschart Thomas Walter |
| Egli Florian | Brugger Stefan Eugen | Schwirzer Christoph Sebastian Johannes |
| Weber Tobias | Messmer Bettina Ursula | Zimmermann Pascal |
| Hegi Heinz | Single Michael Andreas | Hüppin Marc Dominique |
| Imhof Nicolas | Strasser Julia | Meili Mario |
| Otto Markus | Kiefer Tobias |



