Course
TD (Classes)
Exams
Projects
Bibliography
Related links

Computer Architecture Course at Polytechnique
3rd year; INF559 since 2008, was INF541 before
The goals of the course are (1) to understand computer architecture, particularly processor architecture (the key computer component), in detail, (2) to understand how a high-level language program is actually executed on a processor, and how architecture could influence program behavior, and (3) to grasp factors that could influence the evolution of processors and computers. For that purpose, instead of a descriptive approach where a processor would be detailed, we will progressively build a processor from the grounds up, starting with only a few elementary logic gates and a clock signal. That approach is more likely to let students grasp the inner workings of a processor, its interaction with software, and how it can and needs to evolve as technology progresses.

Classes will follow a similar approach, except that we will actually build or modify the processor components using a GUI-based digital circuit design software, called DigLog, and developed at Caltech. We do not redo in classes what has been taught in the course; within the course, we will voluntarily skip the inner workings of some components so that they can be built, altered and studied in detail within classes. We cannot afford, time-wise, to build a full-scale recent processor, so we will focus on the components of a RISC processor; while more simple than current superscalar and multi-core processors, it remains a widely used architecture in most embedded systems. The processor architecture is the LC-2, developed for computer architecture teaching by Patt and Patel in their book Introduction to Computing Systems.

Taught by: Olivier Temam (Alchemy, INRIA Saclay). By default, the course is taught in English, unless all students are fluent French speakers.

Course

Course text (in French for now):

Slides (in English):
  • Chapter 0: Introduction (PDF)
  • Chapter 1: Combinational circuits (PDF)
  • Chapter 2: Number representations (PDF)
  • Chapter 3: Arithmetic and Logic Uni (ALU) (PDF)
  • Chapter 4: Implementation of time and memory (PDF)
  • Chapter 5: Control and connections (PDF)
  • Chapter 6: A brief history of computers evolution (PDF)
  • Chapter 7: A simple microprocessor (PDF)
  • Chapter 8: Assembly programming (PDF)
  • Chapter 10: Superscalar processors (PDF)
  • Chapter 11: Beyond one core (PDF)
Thanks for notifying me if you find any mistake in the slides or course text.

Projects

I am not listing projects but if you are interested in doing a project related to computer architecture, feel free to contact me and we will work out together a project topic of interest to you.

Bibliography

Processors:

System:
  • Modern Operating Systems, 2nd edition, A. S. Tanenbaum, Prentice Hall.

Related Links