Computer architecture


This course presents the architecture of microprocessor-based systems, from the internals of the processors themselves to the main peripherals that surround them and make a complete computing machine, capable of running operating systems like GNU/Linux, Android, Windows, iOS...

Teaching and Learning Methods : Lectures, team-work, lab sessions, mini-conferences by industrials 

Course Policies : Attendance to the lab sessions and the mini-conferences is mandatory


Book: David A. Patterson and John L. Hennessy, "Computer organization and design: the hardware software interface", Morgan Kaufmann


Basic knowledge in software programming (data types, control structures...)

  • Types of microprocessors, from the simplest to the most powerful, and their instruction sets
  • Interactions between hardware and software, caches and memory, peripherals, mandatory hardware support for operating systems...
  • Labs allowing to observe a processor in action during the execution of software applications and to understand how it interacts with its environment.
  • Mini-conferences given by industrials, presenting the latest generations of processors and the challenges related to their design and verification.

 Learning outcomes:

Understand the relationships between software concepts (functionality, performance, parallelism, security...) and the underlying hardware machines (processors, peripherals...).
Discover the most important techniques used by processor and/or computer vendors to improve the performance of their products (pipe-lining, caches, branch prediction...) and the problems they pose (pipeline hazards, cache coherence...).
Understand the hardware support to operating systems (processor modes, Memory Management Units, timers, interrupts, atomic
Become familiar with the classical trade-offs between performance, cost and complexity in computer systems


Nb hours : 42.00, at least 4 Lab sessions (10.5 hours) and 2 mini-conferences (3 hours)

Grading Policy : Final exam (50%), lab reports (25%), contributions to the course material with texts, presentations, videos, exercises, labs… (25%)