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 makes a complete computing machine, capable of running operating systems like GNU/Linux, Android, Windows, iOS...

Teaching and Learning Methods: Lectures, teamwork, lab. sessions, mini-conferences by industrials.

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


Book: PATTERSON D. A., HENNESSY J. L. Computer organization and design: the hardware software interface. Morgan Kaufmann, 2013, 800p.


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
  • operations...)
  • 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)

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