Personal tools

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

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: 1up6up 6.6, 7.1 - 7.14
17 Wed 17 Nov 10 Exceptions: 1up6up
8.1
9 18 Tue 23 Nov 10 Virtual Memory I: 1up6up 9.1 - 9.5
19
Wed 24 Nov 10 Virtual Memory II: 1up6up 9.6 - 9.7
10 20 Tue 30 Nov 10 Devices and I/O: 1up6up no book material
21 Wed 1 Dec 10 Dynamic Memory Allocation I: 1up6up 9.9
11 22 Tue 7 Dec 10 Dynamic Memory Allocation II: 1up6up 9.10 - 9.11
23 Wed 8 Dec 10 Multiprocessors: 1up6up no book material
12 24 Tue 14 Dec 10 Synchronisation: 1up6up no book material
25 Wed 15 Dec 10 Multicores: 1up6up 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

    Document Actions